サイズが600x30、600x30、600x30、600x30、810x30の5つの画像があります。それらの名前は、それぞれ0.png、1.png、2.png、3.png、4.pngです。
ImageMagickでサイズを3210x30の画像にするために、それらを水平方向にマージするにはどうすればよいですか?
ImageMagickにはmontage
ユーティリティが付属しています。モンタージュは各画像を並べて追加し、各画像間の間隔を調整できるようにします(-geometry
)、および一般的なレイアウト(-tile
)。
montage [0-5].png -tile 5x1 -geometry +0+0 out.png
他の例は Montage Usage ページにあります
ImageMagickには、画像を水平方向にマージするため、または他の目的のために、「 convert 」という名前のコマンドラインツールがあります。私はこのコマンドを試してみて、あなたのケースで完璧に働いています:
画像を水平方向に結合するには:convert +append *.png out.png
画像を垂直にスタックするには:convert -append *.png out.png
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
オプションの documentation を確認してください。現在の例では、画像のアスペクト比を維持しながら、700px
高さに画像のサイズを変更します。 +0+0
は、画像を隙間なく配置します。