web-dev-qa-db-fra.com

Fusionner les images côte à côte (horizontalement)

J'ai cinq images de tailles: 600x30, 600x30, 600x30, 600x30, 810x30. Leurs noms sont: 0.png, 1.png, 2.png, 3.png, 4.png, respectivement.

Comment les fusionner horizontalement pour créer une image de taille 3210x30 avec ImageMagick?

72
Sasuke Kun

ImageMagick est livré avec l'utilitaire montage. Montage ajoutera chaque image côte à côte, vous permettant ainsi de régler l'espacement entre chaque image (-geometry) et la disposition générale (-tile). 

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

Vous trouverez d’autres exemples sur Utilisation du montage page

84
emcconville

ImageMagick dispose d'un outil de ligne de commande nommé " convert " pour fusionner des images horizontalement ou à d'autres fins. J'ai essayé cette commande et fonctionne parfaitement sur votre cas:
Pour joindre des images horizontalement:
convert +append *.png out.png

Pour empiler des images verticalement:
convert -append *.png out.png

63
tesmojones

Très simple avec ImageMagick (brew install imagemagick)

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

Toute personne utilisant la gemme MiniMagick Rails peut utiliser l'outil intégré pour fusionner des images:

# 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

Consultez les options documentation for #geometry pour gérer le redimensionnement et le placement. L'exemple actuel redimensionnera les images à une hauteur de 700px tout en conservant les proportions de l'image. +0+0 placera l'image sans espace entre elles.

0
Myk Klemme