JPEG Dateien komprimieren

Manchmal möchte man eine ganze Menge JPEG Dateien komprimieren und dies am liebsten auf der Konsole erledigen. Dabei hilft dieses kleine Bash Skript:

#!/bin/bash
for i in *.jpg; do convert -quality 50 $i $i; done

Damit werden alle JPEGs in dem entsprechenden Verzeichnis auf die Qualitätsstufe 50 komprimiert. Damit das funktioniert muss das Paket imagemagick installiert sein.

7 Kommentare » Schreibe einen Kommentar

  1. Das Skript funktioniert bei mir nicht, weil es auf die rückständige Methode der Erkennung des Dateityps an Hand von Dateiendungen setzt. Müsste man aber mit dem Befehl „file“ irgendwie umbasteln können.

  2. Für Batch-Abläufe stellt ImageMagick den Befehl *mogrify* zur Verfügung.
    Dies würde die oben angeführte Schleife überflüssig mach:

    mogrify -quality 50 *.jpg

  3. jpegoptim habe ich rein zufällig gestern ausprobiert, mit dem Ergebnis, dass keine weitere (verlustlose) Kompression möglich ist wenn vorher schon mogrify an der Datei gearbeitet hat. 50 ist natürlich ein sehr agressiver Wert, der zu starker Artefaktbildung führt, weniger als 85 würde ich persönlich nicht nehmen. Wenn man sowieso schon eines der imagemagick Programme laufen lässt dann kann man gleich noch den paramater “-normalize” dran hängen. Bei meinem imagemagick unter Lucid scheint die Option aber greade kaputt zu sein.

Schreibe einen Kommentar

Pflichtfelder sind mit * markiert.