233 votes

Combiner plusieurs images à l'aide d'ImageMagick

Je voudrais combiner plusieurs images en une seule à l'aide d'ImageMagick. Pour expliquer un peu mieux, je veux que le résultat ressemble à ceci :

En d'autres termes, j'ai plusieurs captures d'écran et je veux les transformer en une seule image avec les images originales superposées.

En cherchant sur Google, je suis tombé sur la commande "composite", mais je ne sais pas si, et dans ce cas comment, l'utiliser pour obtenir le résultat que je souhaite.

350voto

peth Points 9170

Pour un nombre quelconque de fichiers d'entrée nommés in-<_something_>.jpg :

convert -append in-*.jpg out.jpg

Pour que des fichiers spécifiques soient ajoutés, ou pour sauter des numéros au lieu d'obtenir le "glob" complet, vous pouvez mentionner les fichiers d'entrée de manière explicite et mettre l'attribut append après la commande

convert in-1.jpg in-5.jpg in-_N_.jpg +append out-in1-plus-in5-and-in_N_.jpg

Vous pouvez utiliser -append (au lieu de +append ) pour le collage vertical.

Ou :

montage -mode concatenate -tile 1x in-*.jpg out.jpg

créera également un fichier out.jpg qui contient une concaténation verticale des images sources.

convert

Pour une simple concaténation dans une seule ligne ou colonne, la fonction append de l'option convert est suffisant. A noter que -append concatène toutes les images verticalement, créant une colonne avec n rangs, et +append concatène horizontalement, créant une rangée avec n colonnes.

(Voir ImageMagick : Options de la ligne de commande .)

montage

Pour obtenir un contrôle plus fin de la mise en page, nous aurions besoin de la fonction montage outil. montage -mode concatenate collera les images d'entrée ensemble comme le append et l'option -tile 1x contrôle la mise en page à appliquer.

tile suit le format colonnes × rangées mais les deux côtés peuvent être manquants et montage trouveront un moyen de respecter les contraintes.

Nous utilisons 1x (exactement une colonne avec un nombre quelconque de lignes) ici pour obtenir le même effet que -append . Sans -tile 1x il rejoindrait les images comme +append par défaut -tile x1 (un nombre quelconque de colonnes sur une ligne).

(Voir Exemples d'ImageMagick : Montage, tableaux d'images .)

7voto

Utilice -resize si les images n'ont pas la même largeur/hauteur

Vous pouvez fixer la hauteur de tous ces éléments à l'aide de la fonction -resize pour fixer, par exemple, une hauteur de 500 pixels sur deux images jointes horizontalement :

convert +append image_1.png image_2.png -resize x500 new_image_conbined.png

Pour les jointures verticales, il est préférable de définir une largeur fixe :

convert -append image_1.png image_2.png -resize 500x new_image_conbined.png

Exemple :

image_1.png 1067x600

enter image description here

image_2.png 1920x1080

enter image description here

nouvelle_image_conjuguée.png 889x500

enter image description here

Comment le faire de manière interactive avec GIMP

Si vous devez d'abord recadrer/redimensionner des images de manière interactive, ce qui est souvent le cas, alors GIMP est l'outil parfait pour cela, voici une étape détaillée : https://graphicdesign.stackexchange.com/questions/83446/gimp-how-to-combine-two-images-side-by-side/145543#145543

enter image description here

SVGs

ImageMagick 6.9.11-60 ne les gère pas, alors voyez :

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X