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

拼长图

在浏览器本地把多张图片按选择顺序拼成一张长图:竖向或横向拼接、间距与底色可调,拼前就能算出成图尺寸,拼完一键下载。图片全程不离开你的设备。

聊天记录、比分截图、教程步骤,发一张长图永远比连发十张清爽。多张图按顺序拼起来,横竖两个方向、间距底色都能调,宽窄不一的图自动对齐居中,不拉伸不变形;拼之前成图多大就先算出来,尺寸合适再下载。

口径提醒:竖拼成图宽度取各图最宽值,较窄的图居中摆放、两侧以底色补齐(横拼同理按高度对齐),任何一张都不会拉伸变形;间距指相邻两图之间的空隙(0~200 像素),白底适合聊天截图、深色底适合照片;GIF 只保留第一帧,建议单次 10 张以内。

使用步骤

  1. 按顺序选中多张图片。
  2. 选竖拼或横拼,调间距与底色。
  3. 点「开始拼接」,看成图尺寸。
  4. 下载保存;顺序错了重选文件。

计算原理与示例

怎么拼长图

点「选择图片」一次选中多张(或用内置示例先试),选好竖拼或横拼与间距,点「开始拼接」,结果区给出成图尺寸,点下载保存。

宽度不一样怎么办

竖拼时成图宽度取各图最宽值,较窄的图在画布内居中摆放、两侧以底色补齐;横拼同理按高度对齐,不会拉伸变形任何一张。

顺序由什么决定

按你在文件选择框里的先后顺序拼接。想调顺序就重新选一遍文件;文件名有序号时建议按序号依次点选。

间距和底色怎么用

间距是相邻两张图之间的空隙(0~200 像素);底色会补在窄图两侧与间隙处,白底适合聊天记录截图,深色底适合照片拼图。

代码示例

JavaScript 竖拼长图

// 先算总尺寸再画:有一张算错尺寸,整张图就会错位或留黑边
async function mergeVertical(files, gap = 0, bg = '#ffffff') {
  const imgs = await Promise.all(files.map(createImageBitmap));
  const width = Math.max(...imgs.map((i) => i.width));
  const height = imgs.reduce((s, i) => s + i.height, 0) + gap * (imgs.length - 1);
  const canvas = document.createElement('canvas');
  canvas.width = width;
  canvas.height = height;
  const ctx = canvas.getContext('2d');
  ctx.fillStyle = bg;                      // 宽度不一致时补底色,避免透明/黑边
  ctx.fillRect(0, 0, width, height);
  let y = 0;
  for (const img of imgs) {
    ctx.drawImage(img, (width - img.width) / 2, y);   // 居中,宽度不一时不歪
    y += img.height + gap;
  }
  return canvas;
}

Python Pillow 拼图

from PIL import Image

imgs = [Image.open(p) for p in ['a.jpg', 'b.jpg', 'c.jpg']]
width = max(i.width for i in imgs)
height = sum(i.height for i in imgs)

canvas = Image.new('RGB', (width, height), 'white')
y = 0
for img in imgs:
    canvas.paste(img, ((width - img.width) // 2, y))
    y += img.height
canvas.save('merged.jpg', quality=92)

常见问题

拼接时图片会上传吗?

不会。解码、摆位、合成全部在浏览器内存里完成,聊天截图、订单截图这类隐私内容不出本机,断网状态也不影响已打开的页面使用。

一次最多拼几张?

建议不超过 10 张、单张不超过 30 MB。竖拼的成图高度会随张数累加,过长的话部分查看器加载会慢;超过 10 张分两次拼好再拼一次即可。

拼出来的图会不会模糊?

不会。拼接是原像素摆位,不缩放不重采样,清晰度与原图一致;成图尺寸等于各图尺寸之和(竖拼看高度、横拼看宽度)。

为什么成图两侧有白边?

竖拼时成图宽度取最宽一张,更窄的图居中摆放后两侧就会留出底色。想让成图完全贴合,就选宽度一致的图,或接受底色补齐(可换成黑色等其他底色)。

能拼成九宫格那种网格吗?

当前版本只做单行/单列拼接。3×3 网格排版请用本站的「九宫格切图」反向思路——先排好版截图,或使用系统相册的拼图功能。

动图 GIF 拼接后还有动画吗?

没有了。拼接走静态图合成,GIF 只保留第一帧;要保留动画请维持 GIF 格式或使用视频工具。

HEIC 格式的 iPhone 照片能直接拼吗?

取决于浏览器是否带 HEIC 解码器,多数桌面浏览器不支持。建议先在系统相册导出为 JPG 再来拼接。

延伸阅读

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