我有五张图片,分别为:600x30、600x30、600x30、600x30、810x30。它们的名称分别为:0.png、1.png、2.png、3.png、4.png。
如何使用ImageMagick水平合并它们以创建一个尺寸为3210x30的图像?
我有五张图片,分别为:600x30、600x30、600x30、600x30、810x30。它们的名称分别为:0.png、1.png、2.png、3.png、4.png。
如何使用ImageMagick水平合并它们以创建一个尺寸为3210x30的图像?
ImageMagick带有 montage
实用程序。Montage会将每个图像并排附加在一起,允许您调整每个图像之间的间距(-geometry
),以及总体布局(-tile
)。
montage [0-4].png -tile 5x1 -geometry +0+0 out.png
在Montage Usage页面上可以找到其他示例。
ImageMagick有一个名为“convert”的命令行工具,可以水平合并图像或用于其他目的。我尝试过该命令,并在您的案例中完美地工作:
要水平合并图像:
convert +append *.png out.png
要垂直堆叠图像:
convert -append *.png out.png
convert -append %F joined-image.png
。所有已选择的图像将按照字母顺序合并为一个png文件。 - user4098390convert *.png +append out.png
。 - Mazuhlconvert a.png b.png +append row1.png; convert c.png d.png +append row2.png; convert row1.png row2.png -append grid.png
- deadfish如果图像的宽度/高度不相同,请使用-resize
您可以使用-resize
选项为所有图像设置相同的高度,例如,在水平拼接两个图像时将高度固定为500像素:
convert +append image_1.png image_2.png -resize x500 new_image_conbined.png
或者对于垂直拼接,您需要设置固定宽度:
convert -append image_1.png image_2.png -resize 500x new_image_conbined.png
例子:
image_1.png 1067x600
image_2.png 1920x1080
new_image_conbined.png 889x500
相关:
GIMP交互式操作方法
如果您需要交互式地剪切/调整图像大小,那么GIMP是完美的工具,这里有一个详细的逐步说明:GIMP如何将两个图像并排组合
SVGs
ImageMagick 6.9.11-60无法处理它们,因此请参见:
使用ImageMagick非常简单(brew install imagemagick
)。
convert +append image_1.png image_2.png new_image_conbined.png
使用 MiniMagick
Rails 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
将使图像之间没有间隙。
其他答案中描述的convert +append
方法可以将图像水平拼接,顶部对齐。如果您想要底部或中心对齐,请尝试:
convert input1.png input2.png -gravity South +append output.png
or
convert input1.png input2.png -gravity Center +append output.png
来源:Fred的ImageMagick小贴士http://www.fmwconcepts.com/imagemagick/tidbits/image.php#append
[0-5].png
会生成六个不同的文件,分别是"0.png, 1.png, 2.png, 3.png, 4.png, 5.png",但如果您使用了tile 5x1
命令,它只会选取其中五个文件,因此最终输出只剩下两个文件。为避免这种情况,请改用[0-4].png
或-tile 6x1
命令。请注意,修改后不要改变原来的意思。 - R. Barrettmontage left.jpg right.jpg -tile 2x1 -geometry +0+0 out.jpg
。 - Gabriel Staples