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?
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?
Réponses:
ImageMagick est livré avec l' montage
utilitaire. 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
[0-5].png
produira "0.png, 1.png, 2.png, 3.png, 4.png, 5.png", six fichiers différents, mais vous tile 5x1
n'en prendrez que cinq, vous laissant avec deux fichiers de sortie. Cela devrait utiliser [0-4].png
ou -tile 6x1
.
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
convert -append %F joined-image.png
. Toutes les images sélectionnées seront jointes en un seul png dans l'ordre alphabétique
convert *.png +append out.png
Toute personne utilisant la MiniMagick
gemme 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 #geometry
connaître les options permettant de gérer le redimensionnement et le placement. L'exemple actuel redimensionnera les images à une 700px
hauteur tout en conservant le rapport hauteur / largeur de l'image. +0+0
placera l'image sans espace entre eux.
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