Skip to content
MagickCmd › ImageMagick 拼接与合并图片

ImageMagick 拼接与合并图片

用 ImageMagick 把图片纵向或横向拼接、用 montage 做网格联系表、做前后对比图。含间距和标签设置。

纵向或横向拼接

magick shot1.png shot2.png shot3.png -append output.png    # 纵向
magick before.jpg after.jpg +append comparison.jpg         # 横向

减号/加号这个约定贯穿整个 ImageMagick:-append 是纵向堆叠,+append 是横向并排。一般来说减号打开某个设置,加号关掉它或选另一种行为。

尺寸不一致时

宽度不同的图会用背景色补齐到最宽的那张,不是缩放。想拼得整齐,先统一尺寸:

magick shot1.png shot2.png -resize 800x -background white \
  -gravity center -append output.png

加间距

magick before.jpg after.jpg -background white -splice 20x0 \
  +append -chop 20x0 comparison.jpg

-splice 在每张图前面插入一条背景带,末尾的 -chop 把最前面那条去掉,这样间隙只出现在两图之间。

用 montage 做联系表

montage *.jpg -tile 4x -geometry 300x300+8+8 \
  -background white -label '%f' sheet.jpg

montage独立于 magick 的另一个程序。ImageMagick 7 上写作 magick montage,IM6 上直接是 montage

  • -tile 4x —— 四列,行数按需要自动铺。写 -tile 4x3 则每张表最多 12 个。
  • -geometry 300x300+8+8 —— 单元格尺寸加横纵留白。
  • -label '%f' —— 在每张缩略图下面打印文件名。其他有用的占位符:%wx%h 是尺寸,%b 是文件体积。

带标题的联系表

montage *.jpg -tile 5x -geometry 240x240+6+6 -background '#111820' \
  -fill white -label '%f' -title '拍摄 — 2026 年 3 月' sheet.png

带分隔线的前后对比

magick before.jpg after.jpg -resize x800 \
  -background '#0d9488' -splice 4x0 +append -chop 4x0 out.jpg

把一张图叠在另一张上

如果是叠放而不是拼接,用 -composite —— 详见水印那一页

magick background.jpg overlay.png -gravity center -composite out.jpg

做雪碧图

montage icon-*.png -tile 10x -geometry 64x64+0+0 \
  -background none sprite.png

零留白加透明背景,这样 CSS 的 background-position 坐标是可预测的。


相关页面

Copied