Voraussetzungen: Installation der Tools

Damit das Script funktioniert, müssen zunächst die passenden Tools installiert werden. Auf Ubuntu- und Debian-Systemen reicht ein einfacher Befehl:

sudo apt update
sudo apt install -y webp imagemagick
  • cwebp: wandelt JPG und PNG in WebP um
  • ImageMagick (optional): erlaubt zusätzlich flexible Bildbearbeitung und Fallbacks

Damit ist die Umgebung startklar, um Bilder im Handumdrehen für das Web vorzubereiten.

Warum WebP das ideale Bildformat ist

Das WebP-Format wurde von Google speziell für das Web entwickelt. Es kombiniert die Vorteile von JPG und PNG:

  • Hohe Komprimierungsrate: Dateien sind meist 25–35 % kleiner als JPG und bis zu 80 % kleiner als PNG.
  • Transparenz-Unterstützung: wie bei PNG können transparente Hintergründe genutzt werden.
  • Browser-Kompatibilität: nahezu alle modernen Browser unterstützen WebP.

Damit werden Webseiten schneller geladen, sparen Bandbreite und verbessern gleichzeitig die User Experience.

Komprimierungsrate in der Praxis

Mit dem vorgestellten Script lassen sich Bilder von mehreren Megabyte auf wenige hundert Kilobyte reduzieren – bei kaum sichtbarem Qualitätsverlust. Typische Ergebnisse:

  • JPG → WebP: 2,5 MB auf ~600 KB (−75 %)
  • PNG → WebP: 2,5 MB auf ~200–400 KB (−85 %)

Das ist gerade für Webseiten mit vielen Bildern ein großer Vorteil: schnellere Ladezeiten, bessere SEO-Werte und weniger Speicherplatzverbrauch. folgendes Script speichern und ausführbar machen. Bei mir heißt dieses Script: „clean_pic.sh“, starten kannst du es mit „./clean_pic.sh“.

Voraussetzung ist die richtige Angabe der Ordner in Zeile 3 und 4:

# Ordner mit den zu komprimierenden Bildern
SRC="/$HOME/Schreibtisch/dev-pool.de/bilder"
# Zielordner der komprimierten Ordner
DST="/$HOME/Schreibtisch/dev-pool.de/bilder/fertig"
mkdir -p "$DST"

find "$SRC" -type f \( -iname '*.jpg' -o -iname '*.jpeg' \) -print0 |
while IFS= read -r -d '' f; do
  rel="${f#"$SRC/"}"
  out="$DST/${rel%.*}.webp"
  mkdir -p "$(dirname "$out")"
  cwebp -mt -m 6 -af -metadata none -resize 1600 0 -q 60 "$f" -o "$out"
  echo "✅ $rel → $out"
done

find "$SRC" -type f -iname '*.png' -print0 |
while IFS= read -r -d '' f; do
  rel="${f#"$SRC/"}"
  out="$DST/${rel%.*}.webp"
  mkdir -p "$(dirname "$out")"
  cwebp -mt -m 6 -af -metadata none -resize 1600 0 -q 58 -alpha_q 55 "$f" -o "$out"
  echo "✅ $rel → $out"
done

Folgende Ausgabe sollte nach erfolgreicher Bearbeitung im Terminal erscheinen: