Bilder mit der Unix-Shell komprimieren

So kriegen Sie jedes Bild "auf Befehl" klein...

Werbung
Ob sich so die Bilder auf der DVD wirklich komprimieren lassen ist fragwürdig... ;-)
Ob sich so die Bilder auf der DVD wirklich komprimieren lassen ist fragwürdig... ;-)

Nutzer von Content Management Systemen wie WordPress und Typo3, aber auch Webdesigner und Systemadmins kennen das Problem, mal eben schnell eine Bilddatei komprimieren zu müssen.

Doch für eine solche Lappalie gleich Monster-Apps wie Photoshop und Co. anwerfen lohnt eigentlich nicht. Außerdem ist es umständlich, vor allem dann, wenn sich die Datei bereits auf dem Server befindet und das CMS zig Abwandlungen davon generiert hat.

Und wer als Webmaster schon einmal vor der Aufgabe stand, eine jahrelang vernachlässigte Website mit hunderten Fotos und Grafiken auf Vordermann bringen zu müssen, möchte sich das Dateischubsen vom und zum Server samt manueller Optimierung jedes einzelnen Bildes sicher auch gerne ersparen.


Werbung


Eine Lösung wären Tools für die Kommandozeile, aber von Haus aus bringen Unix-/Linux-Systeme wie Ubuntu, Debian, OpenBSD und CentOS keine passenden Helfer für die Bildkomprimierung mit.

Im folgenden stellen wir daher zwei einfach zu nutzende und kostenlose Open Source – Utilities vor, die wir selbst im Alltag produktiv nutzen, um Bilddateien auf Diät zu setzen.

Tipp: Wie immer vor der Arbeit mit Dateien gilt… Sicherungskopien anfertigen !

Gängige Bildformate im Web: JPEG und PNG

JPEG (gesprochen ˈdʒeɪpɛɡ) ist wohl das populärste Format im Web. Die Bezeichnung geht dabei auf das Gremium Joint Photographic Experts Group zurück, das die JPEG-Norm 1992 entwickelt hat.

Der JPEG-Standard schlägt verschiedene Komprimierungs- und Kodierungsmethoden im Rahmen seiner Spezifikation vor und bietet so ein breites Anwendungsspektrum weit über das Internet hinaus.

PNG (Abkürzung für „Portable Network Graphics“) wurde als Nachfolger des GIF-Formats im Jahr 1996 offiziell vorgestellt und ist das derzeit am weitesten verbreitete verlustfreie Grafikformat im Netz.

Im Gegensatz zu GIF unterstützt PNG zwar keine Animationen, liefert jedoch meist bessere Kompressionsraten. Verwendet wird es häufig für Infografiken oder für die Darstellung besonders detailreicher Bildinhalte.

JPEGs optimieren mit jpegoptim

jpegoptim ist ein Tool zur Optimierung von JPEG-Dateien. Es bietet sowohl eine verlustfreie Komprimierung, indem es die verwendeten Huffman-Tabellen einer Optimierung unterzieht, sowie eine verlustbehaftete Komprimierung, bei welcher der Qualitätsfaktor angepasst werden kann.

Die Installation von jpegoptim kann problemlos über gängige Paketverwalter erfolgen (alternativ steht auf der Homepage des Autors auch der Quelltext zum Download parat); für Debian genügt der folgende Aufruf:

apt-get install jpegoptim

Das Tool kommt mit einer informativen man-Page, die alle Optionen erklärt:

man jpegoptim

Eine kürzere Zusammenfassung der Features liefert dieses Kommando:

jpegoptim -h

Für eine verlustfreie Komprimierung sind keine besonderen Angaben erforderlich; man ruft einfach jpegoptim zusammen mit dem gewünschten Dateinamen auf, fertig. Natürlich funktionieren auch die Shell-typischen Wildcards ? (ein Zeichen) und * (beliebig viele Zeichen).

Folgendes Beispiel holt das meiste aus JPG-Bildern heraus (verlustfreie Komprimierung):

jpegoptim -t --strip-all *.jpg

Die Option -t liefert am Ende des Durchlaufs eine zusammenfassende Statistik und –strip-all entfernt zusätzlich alle Marker und Kommentare (z.B. Exif, IPTC, ICC, XMP).

Je nach Ausgangsmaterial lässt sich das Datenvolumen gut und gerne halbieren, in Einzelfällen sogar um bis zu 90 %. Für unsere Tests nutzten wir verschiedene NEF-Bilder einer Nikon D3400, die zuvor mit der Nikon-eigenen App ViewNX-i in JPEGs der höchsten Qualitätsstufe konvertiert wurden.

Eigentümer und Dateiberechtigungen

In der von uns getesteten Version 1.4.4 steckt leider ein kleiner Bug: Die Eigentümer der optimierten Dateien werden auf den aktuellen Benutzer umgeschrieben.

Bei Bedarf muss also der vorherige Eigentümer mit chown wiederhergestellt werden (ansonsten könnten betroffene Bilder unter Umständen nicht mehr über das Web öffentlich erreichbar sein).

Link zum Tool: jpegoptim (über GitHub)

Werbung