文件图片 本地计算 开箱即用 内置示例 不留痕迹

九宫格切图

在浏览器本地把一张图切成宫格小图:支持 3×3 九宫格、2×2 四宫格、3×2、4×4 等组合,切完逐张下载,按顺序发出去就是完整的九宫格排版。全程本地处理,图片不经过任何服务器。

朋友圈和微博都认九宫格的仪式感:一张全景图切成九块,按顺序发出去就是完整排版。三乘三、四宫格、四乘四随你选,尺寸除不尽时余数自动归入边格,九块严丝合缝;图源选主体居中的效果最好,贴边的人脸文字可能被切开,发布前先预览每格。

口径提醒:图片尺寸不能被行列数整除时,余数像素由最后一行/列的格子向内吸收,九块仍能无缝拼回原图;切出的统一是 PNG 无损格式(JPG 源图体积会变大,可再走图片压缩);主体居中、四周留白的照片效果最好,人脸或文字贴边可能被切开,发布前先预览每格。

使用步骤

  1. 选图,选宫格规格(默认 3×3)。
  2. 点「开始切图」,看每格的像素尺寸。
  3. 按编号顺序逐张下载。
  4. 发朋友圈从左到右、从上到下依次选图。

计算原理与示例

怎么切九宫格

选图后选宫格规格(默认 3×3),点「开始切图」,下方会给出每格的像素尺寸,切好的九张图逐张下载即可;建议按编号顺序发布。

除不尽的像素去哪了

图片宽或高不能被行数/列数整除时,余数像素由最后一行/列的格子向内吸收,保证九块无缝拼回原图、没有黑边或空隙。

切完怎么发才有整图效果

发朋友圈时务必按从左到右、从上到下的顺序选图发布(微信按选择顺序排列);九张图之间不加文字说明,整图效果才完整。

什么样的图适合切

主体居中、四周留白多的照片切出来效果最好;人脸或文字贴边的图切开后可能被分割,切之前先预览每格内容再发布。

代码示例

JavaScript 九宫格切图(末行末列吸收余数)

// 关键点:宽高除不尽时,末尾几格多分几像素,否则会丢边或留白
function gridCut(img, rows, cols) {
  const tileW = Math.floor(img.width / cols);
  const tileH = Math.floor(img.height / rows);
  const tiles = [];
  for (let r = 0; r < rows; r++) {
    for (let c = 0; c < cols; c++) {
      const x = c * tileW;
      const y = r * tileH;
      // 最后一列 / 最后一行吃掉余数
      const w = c === cols - 1 ? img.width - x : tileW;
      const h = r === rows - 1 ? img.height - y : tileH;
      const canvas = document.createElement('canvas');
      canvas.width = w;
      canvas.height = h;
      canvas.getContext('2d').drawImage(img, x, y, w, h, 0, 0, w, h);
      tiles.push({ row: r + 1, col: c + 1, canvas });
    }
  }
  return tiles;
}

Python Pillow 切格

from PIL import Image

img = Image.open('photo.jpg')
rows, cols = 3, 3
tile_w, tile_h = img.width // cols, img.height // rows

for r in range(rows):
    for c in range(cols):
        x, y = c * tile_w, r * tile_h
        w = img.width - x if c == cols - 1 else tile_w
        h = img.height - y if r == rows - 1 else tile_h
        img.crop((x, y, x + w, y + h)).save(f'tile-{r + 1}-{c + 1}.jpg', quality=92)

常见问题

切图时图片会上传到服务器吗?

不会。切分坐标的计算与像素裁剪都在你的浏览器里完成,九张小图生成后直接进入下载,全程不出本机,关掉页面数据就没了。

为什么每格尺寸不是整数相等的?

当图片尺寸不能被行列数整除时(例如 1080×1920 切 3 行,每行 640 像素整除无余;但 320 高切 3 行每行 106 像素余 2),余数像素被最后一行/列的格子吸收,整体仍然无缝。

能切 2×2 或 4×4 吗?

可以。行列数各支持 2~6,自由组合出 2×2 四宫格、3×2 六宫格、4×4 十六宫格等规格;朋友圈排版最常用的是 3×3。

切出来的小图是什么格式?

统一输出 PNG 位图,无损且所有平台都支持。源图是 JPG 时会先解码再以 PNG 存,体积略大但画质无损;介意体积可以再走本站的图片压缩工具。

发到朋友圈顺序乱了怎么办?

微信按你点选的先后顺序排列图片。建议每张图的文件名自带序号(本工具下载时已编号),对照编号依次选中即可;发错只能删除重发。

超大图片能切吗?

建议单张在 30 MB 以内、边长 8000 像素以内。更大的图受设备内存限制可能解码失败,可先用系统工具缩小后再切,切成九格后每格分辨率依然够用。

和裁剪是一回事吗?

不是。裁剪是把图缩成一块,宫格切图是把一整张等分成多块且拼回仍为原图;两者不冲突,先裁好构图再来切九宫格是常见做法。

延伸阅读

来自本站原创文章,讲清这个工具背后的算法与口径。