并排合并图像(水平)


98

我有五张尺寸为600x30、600x30、600x30、600x30、810x30的图片。它们的名称分别是:0.png,1.png,2.png,3.png,4.png。

如何使用ImageMagick水平合并它们以制作尺寸为3210x30的图像?

Answers:


117

montage实用程序附带ImageMagick 。蒙太奇将并排附加每个图像,使您可以调整每个图像(-geometry)和常规布局(-tile)之间的间距。

montage [0-5].png -tile 5x1 -geometry +0+0 out.png

其他示例可以在“ 蒙太奇用法”页面上找到


1
montage文档指定[0-5]语法适用于linux,因此我想如果您在Windows上,则必须键入/生成所有文件名。即蒙太奇0.png 1.png 2.png 3.png 4.png ...

3
你是最棒的!我一生都在搜寻!
罗宾

@RodrigoGraça 有关处理透明度和背景的信息,请参见用法和示例指南。
emcconville

它也适用于jpg和png的组合。谢谢
joydeep bhattacharjee

3
[0-5].png会生成“ 0.png,1.png,2.png,3.png,4.png,5.png”六个文件,但是您tile 5x1只会使用其中的五个,剩下两个输出文件。应该使用[0-4].png-tile 6x1
R. Barrett

79

ImageMagick具有名为“ convert ”的命令行工具,可水平合并图像或用于其他目的。我已经尝试过此命令,并且在您的情况下工作完美:
水平合并图像:
convert +append *.png out.png

垂直堆叠图像:
convert -append *.png out.png


可以添加到这个形式Thunar中自定义操作(前垂直加入=升镇)convert -append %F joined-image.png。所有选定的图像将按字母顺序以一个png的形式加入

1
如果使用ImageMagick 7+,则需要将正在处理的图像放在参数之前:convert *.png +append out.png
Mazuhl

7

使用ImageMagick(brew install imagemagick)非常简单

convert +append image_1.png image_2.png new_image_conbined.png

0

使用MiniMagickrails gem的任何人都可以使用内置工具来合并图像:

# Replace this with the path to the images you want to combine
images = [
  "image1.jpg",
  "image2.jpg"
]

processed_image = MiniMagick::Tool::Montage.new do |image|
  image.geometry "x700+0+0"
  image.tile "#{images.size}x1"
  images.each {|i| image << i}
  image << "output.jpg"
end

请查阅文档以获取用于#geometry调整大小和放置的选项。当前示例将700px在保持图像的高宽比的同时将图像调整为一个高度。+0+0将图像放置在它们之间没有间隙。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.