web-dev-qa-db-ja.com

画像を並べて結合(水平方向)

サイズが600x30、600x30、600x30、600x30、810x30の5つの画像があります。それらの名前は、それぞれ0.png、1.png、2.png、3.png、4.pngです。

ImageMagickでサイズを3210x30の画像にするために、それらを水平方向にマージするにはどうすればよいですか?

85
Sasuke Kun

ImageMagickにはmontageユーティリティが付属しています。モンタージュは各画像を並べて追加し、各画像間の間隔を調整できるようにします(-geometry)、および一般的なレイアウト(-tile)。

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

他の例は Montage Usage ページにあります

98
emcconville

ImageMagickには、画像を水平方向にマージするため、または他の目的のために、「 convert 」という名前のコマンドラインツールがあります。私はこのコマンドを試してみて、あなたのケースで完璧に働いています:
画像を水平方向に結合するには:
convert +append *.png out.png

画像を垂直にスタックするには:
convert -append *.png out.png

67
tesmojones

ImageMagick(brew install imagemagick

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

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は、画像を隙間なく配置します。

0
Myk Klemme