Bilder Optimieren über die Console mit jpegoptim und Optipng

Author: Alexander Fox

Follow me on Twitter
Created 22/04/2014

In gewissen Situationen bedarf es einer Optimierung der JPG Bilder innerhalb eines CMS System oder Bildergalerie etc. Da Benutzer einfach Bilder hochladen ohne für Webseiten zu Optimieren.Wenn man nicht den Aufwand betreiben möchte die Ordner mit tausenden Bildern die sich über Jahre angesammelt haben im Dateisystem herunter zu laden und von Hand einzeln zu überarbeiten bietet sich ein kleines Kommandozeilen Programm an namens jpegoptim. Jpegoptim optimiert Bilddaten des Formats JPG bzw. JPEG in einem Ordner . Durch die Optimierung der Bilddateien werden im bestenfall eure Webseiten schneller mit wenig Aufwand.Die Bilder werden mittels dieser beiden Tools Verlustfrei Optimiert

Für die Richtigkeit der Inhalte des Tutorials gebe ich keinerlei Garantie.

Voraussetzung für diese Installation ist ein Debian oder Ubuntu System

1. Installation der Programme jpegoptim und Optipng

Da es auch vor kommt dass png in den Bildordnern liegen installieren wir auch ein PNG Optimierungs Programm über folgende Kommandos

apt-get install jpegoptim optipng

Sollte ein Packet nicht verfügbar sein oder ein Fehler kommen, sucht nach dem Packet mittels

apt-cache search jpegoptim

Es sollte nun so aussehen

root@300:~# apt-cache search jpegoptim
jpegoptim – utility to optimize jpeg files
trimage – GUI and command-line interface to optimize image files
root@300:~#

2.) Optimierung der JPG Dateien in einer WordPress Installation

Nach der Installation wechselt ihr in den Ordner in dem die Bilder sind in meinem Fall ein WordPress Bild Ordner

cd /var/www/meineseite.de/web/wp-content/uploads/

Nun gebt ihr folgendes Kommando ein um die JPGs zu Optimieren

find . -iname *.jp*g -type f -print0 | xargs -0 jpegoptim -o –strip-all

Ihr erhaltet nach der Optimierung folgende Ausgabe in etwa (Je nach Umfang und Ordner, kann die Optimierung natürlich etwas dauern.)

./2012/01/19.01-0341-660×495.jpg 660×495 24bit JFIF  [OK] 71589 –> 70697 bytes (1.25%), optimized.
./2012/02/meine_seite-660×593.jpg 660×593 24bit JFIF  [OK] 78962 –> 73536 bytes (6.87%), optimized.
./2012/02/mein_seite-300×269.jpg 300×269 24bit JFIF  [OK] 22674 –> 20965 bytes (7.54%), optimized.
./2012/02/mein_seite-210×160.jpg 210×160 24bit JFIF  [OK] 11678 –> 10610 bytes (9.15%), optimized.
./2012/02/mein_seite-520×467.jpg 520×467 24bit JFIF  [OK] 52674 –> 48961 bytes (7.05%), optimized.
./2012/02/meine_seite-45×45.jpg 45×45 24bit JFIF  [OK] 1717 –> 1342 bytes (21.84%), optimized.
./2012/02/meine_seite.jpg 985×886 24bit JFIF  [OK] 108366 –> 108366 bytes (0.00%), skipped.
./2012/02/meine_seite-290×220.jpg 290×220 24bit JFIF  [OK] 19596 –> 18061 bytes (7.83%), optimized.

3.) Dateiberechtigungen

Da jpegoptim die Dateiberechtigungen ändert auf den Benutzer der jpegoptim ausführt sollten, wir die Berechtigungen erneute setzen auf den Web User, in meinem fall is dies web8 und Gruppe client1 dies wird mit Sicherheit bei euch nicht so sein daher im Hauptordner nach sehen welchem User das Web gehört mit

ls -la /var/www/meineseite.de/

Ergebnis bei mir z.Bsp.

drwx–x—  8 web8 client1 4096 Apr 18 15:48 web

Nun die Dateirechte ändern mit chown

chmod 644 /var/www/meineseite.de/web/wp-content/uploads/*

Nun die Benutzerrechte

chown -cR web8:client1 /var/www/meineseite.de/web/wp-content/uploads/*

4.) Optimierung der PNG Dateien in einer WordPress Installation

Nun Optimieren wir noch die PNGs über folgenden Befehl

find . -iname ‚*.png‘ -print0 | xargs -0 optipng -o7 -preserve

In meinem Fall hat dies Etwas länger gedauert, eventuell wenn einem Bewusst ist dass in den Ordnern viele Bilder sind die Optmierung zu einem Zeitpunkt machen an dem der Server nicht unter vollast läuft. mit dem Befehl Top sieht man wie die auslastung ist des Servers

Nun sollten die JPG bzw JPEGs und PNP Dateien in dem Ordner Uploads Optimiert sein, ihr könnt euch auch ein Shell Script bauen und die Optimierung automatisch Täglich laufen lassen.

Links:

Jpgoptim

Optipng

Das könnte dich auch interessieren …