Wie füge ich Bilder in der Kommandozeile zusammen? [geschlossen]


110

Ich möchte die CSS Sprite- Technik ausprobieren, um einige Miniaturansichten als einzelnes Bild zu laden. Daher muss ich einige Miniaturansichten in einer einzelnen Datei offline auf dem Server "zusammenführen".

Angenommen, ich habe 10 Miniaturansichten derselben Größe. Wie würden Sie vorschlagen, dass ich sie über die Linux-Befehlszeile "zusammenführe"?

Antworten:


197

Sie können auch ImageMagic ausprobieren, das sich hervorragend zum Erstellen von CSS-Sprites eignet. Ein Tutorial dazu hier .

Beispiel (vertikales Sprite):

convert image1.png image2.png image3.png -append result/result-sprite.png

Beispiel (horizontales Sprite):

convert image1.png image2.png image3.png +append result/result-sprite.png

45
Hinweis: Dadurch wird ein vertikales Sprite generiert, das +appendanstelle des horizontalen Sprites verwendet wird -append.
Chango

13
Wenn Sie faul sind,convert -append *.png out.png
ChillarAnand

Dies funktioniert, aber für große Dateien dauert es viel Zeit. Gibt es einen Weg zum schnellen Compositing?
Vlad Tsepelev

@VladTsepelev Wenn Sie viele PNGs zusammenfassen, müssen Sie sie (in eine Pixmap) für den Vorgang dekodieren und schließlich erneut codieren. Wenn Sie ein vorhandenes Sprite sehr oft erweitern möchten, kann das Beibehalten der dekodierten Pixmap-Versionen möglicherweise die Dinge beschleunigen. Siehe meine Antwort für die Verwendung der PNM-Tools, um diesen Vorgang auszuführen. Aber natürlich sind die Pixmap-Versionen viel größer als die PNGs. Erwarten Sie also mehr Speicherplatz.
Alfe

1
Es heißt: ´convert-im6.q16: Breite oder Höhe überschreitet das Limit `ktwo201121817-c102_lpd-targ.fits_autoaper.png '@ error / cache.c / OpenPixelCache / 3839.´
zabop

28

Sie können auch GraphicsMagick verwenden , eine leichtere und schnellere Gabel von ImageMagick:

gm convert image1.png image2.png -append combined.png

Ein einfacher Zeitvergleich zum Zusammenführen von 12 Bildern:

time convert image{1..12}.jpg -append test.jpg

real    0m3.178s
user    0m3.850s
sys     0m0.376s

time gm convert image{1..12}.jpg -append test.jpg

real    0m1.912s
user    0m2.198s
sys     0m0.766s

GraphicsMagick ist fast doppelt so schnell wie ImageMagick.


7

Verwenden Sie das pnmcatdes netpbm-Pakets.

Sie müssen wahrscheinlich Ihre Eingabedateien hin und her konvertieren, um sie zu verwenden:

pnmcat -lr <(pngtopnm 1.png) <(pngtopnm 2.png) | pnmtopng > all.png

4

Wenn Sie die Bilder lieber von links nach rechts zusammenführen möchten, verwenden Sie den folgenden Befehl:

convert image{1..0}.png +append result/result-sprite.png

Beachten Sie die +appendstatt -append.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.