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

99

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?

Sasuke Kun
la source

Réponses:

117

ImageMagick est livré avec l' montageutilitaire. Montage ajoutera chaque image côte à côte, vous permettant d'ajuster l'espacement entre chaque image ( -geometry) et la disposition générale ( -tile).

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

D'autres exemples peuvent être trouvés sur la page Utilisation du Montage

Emcconville
la source
1
La documentation de montage spécifie que la syntaxe [0-5] est pour linux, donc je suppose que si vous êtes sous Windows, vous devez taper / générer tous les noms de fichiers. ie montage 0.png 1.png 2.png 3.png 4.png ...
Dan
3
Tu es le meilleur! J'ai cherché cela toute ma vie!
Robin
@ RodrigoGraça Voir le guide d' utilisation et d'exemples sur la gestion de la transparence et des arrière-plans.
emcconville
cela fonctionne également pour la combinaison de jpg et png. merci
joydeep bhattacharjee
3
[0-5].pngproduira "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", six fichiers différents, mais vous tile 5x1n'en prendrez que cinq, vous laissant avec deux fichiers de sortie. Cela devrait utiliser [0-4].pngou -tile 6x1.
R. Barrett
80

ImageMagick a un outil de ligne de commande nommé « convertir » pour fusionner les images horizontalement, ou à d'autres fins. J'ai essayé cette commande et travaille parfaitement sur votre cas:
Pour joindre des images horizontalement:
convert +append *.png out.png

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

tesmojones
la source
qui peuvent être ajoutés à une action personnalisée Thunar sous cette forme (. ex = à se joindre verticalement vers le haut-ville): convert -append %F joined-image.png. Toutes les images sélectionnées seront jointes en un seul png dans l'ordre alphabétique
1
Si vous utilisez ImageMagick 7+, vous devrez mettre les images sur convert *.png +append out.png
lesquelles
8

Très simple avec ImageMagick ( brew install imagemagick)

convert +append image_1.png image_2.png new_image_conbined.png
Thiago
la source
0

Toute personne utilisant la MiniMagickgemme 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 la documentation pour #geometryconnaître les options permettant de gérer le redimensionnement et le placement. L'exemple actuel redimensionnera les images à une 700pxhauteur tout en conservant le rapport hauteur / largeur de l'image. +0+0placera l'image sans espace entre eux.

Myk Klemme
la source
0

Et si les images n'ont pas la même hauteur et que vous souhaitez la corriger pour toutes, vous pouvez ajouter -resize, par exemple pour fixer une hauteur de 400 pixels:

convert +append image_1.png image_2.png -resize x400 new_image_conbined.png
Ciro Santilli 郝海东 冠状 病 六四 事件 法轮功
la source