2011-05-30 18:30:58 +0000 2011-05-30 18:30:58 +0000
172
172

Kombinieren mehrerer Bilder mit ImageMagick

Ich möchte mehrere Bilder mit ImageMagick zu einem Bild zusammenfügen. Um das ein wenig besser zu erklären, möchte ich, dass das Ergebnis ähnlich aussieht wie hier:

Das heißt, ich habe eine Reihe von Screenshots, und ich möchte sie zu einem Bild zusammenfügen, wobei die Originalbilder übereinander liegen.

Beim Googeln bin ich auf den Befehl “Composite” gestoßen, aber ich weiß nicht, ob und wie ich ihn verwenden kann, um das gewünschte Ergebnis zu erhalten.

Antworten (1)

266
266
266
2011-05-30 19:37:55 +0000

Für eine beliebige Anzahl von Eingabedateien mit dem Namen in-<something>.jpg:

convert -append in-*.jpg out.jpg

Um bestimmte Dateien anhängen zu lassen oder Nummern zu überspringen, anstatt den vollen “Glob” zu erhalten, können Sie die Eingabedateien explizit erwähnen und den Befehl append hinterherschieben

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

Sie können -append (anstelle von +append) für die vertikale Verkettung verwenden.

Oder:

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

erzeugt ebenfalls eine Datei out.jpg, die eine vertikale Verkettung der Quellbilder enthält.

convert

Für eine einfache Verkettung in einer einzelnen Zeile oder Spalte ist die Option append des Werkzeugs convert ausreichend. Beachten Sie, dass -append alle Bilder vertikal verkettet, wodurch eine Spalte mit n Zeilen entsteht, und +append horizontal verkettet, wodurch eine Zeile mit n Spalten entsteht.

(Siehe ImageMagick: Kommandozeilenoptionen .)

montage

Um eine feinere Kontrolle über das Layout zu erhalten, benötigen wir das Werkzeug montage. montage -mode concatenate klebt die Eingabebilder zusammen wie die Option append und -tile 1x steuert das anzuwendende Layout.

tile folgt dem Format columns×rows, aber eine der beiden Seiten kann fehlen und montage wird herausfinden, wie man die Beschränkungen einhält.

Wir verwenden hier 1x (genau eine Spalte mit einer beliebigen Anzahl von Zeilen), um den gleichen Effekt wie -append zu erzielen. Ohne -tile 1x würden die Bilder wie bei +append zusammengefügt werden, wobei -tile x1 (eine beliebige Anzahl von Spalten in einer Zeile) verwendet wird.

(Siehe ImageMagick Beispiele: Montage, Arrays von Bildern .)