ImageMagick montage:如何横向拼接图片并仅在图间加间距?
解决ImageMagick横向拼接仅保留中间间距的问题
仅靠-geometry参数无法单独实现只保留图片中间间距、消除外侧间距的效果——因为-geometry +10+0中的偏移值会同时作用于图片之间和整个拼接画布的外侧边缘。不过可以结合其他简单参数实现需求,无需使用-trim(避免破坏原图边距):
方法1:用-shave裁剪外侧多余间距
-geometry +10+0会在拼接图的左右各添加10px的外侧间距,直接用-shave裁掉这部分即可:
magick montage input1.png input2.png -geometry +10+0 -shave 10x0 output.png
该命令先完成带内外间距的拼接,再裁剪掉左右各10px的外侧空间,精准保留中间的10px间距,不会影响原图自带的边距。
方法2:指定图片尺寸+裁剪画布
如果已知两张图片的精确尺寸(比如示例中的100x150),可以在-geometry中明确尺寸,再用-extent裁剪画布到刚好容纳两张图+中间间距的大小:
magick montage input1.png input2.png -tile 2x1 -geometry 100x150+10+0 -border 0 -extent 210x150 output.png
-geometry 100x150+10+0:固定图片尺寸,同时设置横向间距为10px-extent 210x150:将画布裁剪为100+10+100=210px宽、150px高,直接消除外侧多余空间
方法3:用convert直接拼接(更灵活)
如果不想依赖montage,可以用convert的拼接功能直接控制间距,效果更直观:
magick convert input1.png \( input2.png -repage +10+0 \) +append output.png
该命令将第二张图向右偏移10px后,与第一张图横向拼接,只会在两张图之间产生间距,完全没有外侧多余空间,非常适合需要保留原图边距的场景(比如书籍页面)。
内容的提问来源于stack exchange,提问作者user25432856
相关产品推荐
相关产品推荐

