Batch Bilddateien konvertieren und skalieren

12.11.2007

Um Bilder in andere Formate umzuwandeln, gibt es das ImageMagick Programm "convert".
Um eine Datei umzuwandeln, schreibt man z.B.

convert test.gif test.png

Das Programm kennt eine unglaubliche Fülle an Graphikformaten, "man ImageMagick" listet alle unterstützen Formate auf. Convert kann ausserdem die Bilder auch noch manipulieren, siehe "man convert".


Was convert allerdings nicht kann, ist mehrere Bilder umwandeln. Ich habe dazu ein einfaches Shellskript batchconvert geschrieben. Die Datei als batchconvert abspeichern, in /usr/local/bin/ kopieren und mit chmod a+x ausführbar machen. Die Syntax ist:


batchconvert t <targettype> <dateiliste>, z.B. batchconvert t png *.gif


Um die Grösse von Bildern zu ändern gibt es den Parameter -resize, z.B.

convert -resize 800x600 test.png test.png

Wiederum geht das nur mit einem File. Mein Skript batchresize verkleinert oder vergrössert eine Liste von Bildern.

Die Syntax ist batchresize WidthxHeight <dateiliste> Ein Tip wenn man Photos im hoch- und querformat gleichzeitig skalieren will: convert behält die Proportionen bei. Ein batchresize 800x800 *.png skaliert alle hochformatigen Bilder auf die Grösse 600x800 und die querformatigen zu 800x600.



Dank einem Tip von Robert Regn verwendet batchconvert jetzt sed, um die Zieldateinamen zu definieren.

Downloads

batchconvert - speichern in /usr/local/bin un chmod a+x
batchresize - speichern in /usr/local/bin un chmod a+x

shell linux