Bilder für das Web aufbereiten

von | 15 Juni,2025 | Scripts & Snippets

Tools installieren

Die wichtigsten Tools:

  • ImageMagick (mächtig, wandelt/skalieren/umbenennen/etc.)

  • jpegoptim (optimiert JPEGs)

  • optipng (optimiert PNGs)

  • mogrify (Teil von ImageMagick, arbeitet auf Stapel)

Installiere alles (Ubuntu/Debian):

sudo apt update
sudo apt install imagemagick jpegoptim optipng

Bilder skalieren und konvertieren (ImageMagick)

Beispiel: Alle Bilder auf maximale Breite 1200px bringen (Höhe automatisch, Verhältnis bleibt)

mogrify -resize 1200x1200\> -path ./output/ *.jpg *.jpeg *.png
  • Alle Bilder werden kopiert und skaliert ins Verzeichnis output/.

  • Nur Bilder, die größer sind, werden verkleinert.

  • *.jpg *.jpeg *.png funktioniert mit Bash, ansonsten einzeln laufen lassen.

Komprimieren / Optimieren

JPEG:

jpegoptim --max=80 --strip-all ./output/*.jpg
  • Qualität auf 80% (guter Standardwert)

  • Entfernt EXIF-Daten und Kommentare

PNG:

  • Starke Kompression (verlustfrei bei PNG)
optipng -o7 ./output/*.png

Optional: In WebP konvertieren

WebP bietet noch bessere Kompression für’s Web:

  • Erzeugt WebP-Bilder mit Qualität 80
sudo apt install webp
cd output/
for i in *.jpg *.jpeg *.png; do
  cwebp -q 80 "$i" -o "${i%.*}.webp"
done

Dateinamen anpassen (optional)

Um Leerzeichen zu vermeiden oder Kleinschreibung zu erzwingen:

rename 'y/A-Z/a-z/' *.JPG
rename 's/ /_/g' *

Kurzes Komplett-Beispiel (als Script):

Speichere das Folgende z. B. als bilder-weboptimieren.sh im Bilder-Ordner und mache es mit chmod +x bilder-weboptimieren.sh ausführbar:
#!/bin/bash

# --- Variablen und Hilfetext ---
SRC="$1"
DST="${2:-output}"

if [ -z "$SRC" ] || [ ! -d "$SRC" ]; then
  echo "Nutzung: $0 QUELLORDNER [ZIELORDNER]"
  echo "Beispiel: $0 ./meine_bilder ./fertig_fürs_web"
  exit 1
fi

mkdir -p "$DST"

# --- Skalieren ---
echo "Skaliere Bilder aus '$SRC' nach '$DST' (max 1200px)..."
mogrify -resize 1200x1200\> -path "$DST" "$SRC"/*.jpg "$SRC"/*.jpeg "$SRC"/*.png

# --- JPEG optimieren ---
echo "Optimiere JPEGs..."
jpegoptim --max=80 --strip-all "$DST"/*.jpg "$DST"/*.jpeg

# --- PNG optimieren ---
echo "Optimiere PNGs..."
optipng -o7 "$DST"/*.png

# --- WebP optional (auskommentieren, falls nicht benötigt) ---
# echo "Konvertiere nach WebP..."
# for i in "$DST"/*.jpg "$DST"/*.jpeg "$DST"/*.png; do
#   [ -e "$i" ] || continue
#   cwebp -q 80 "$i" -o "${i%.*}.webp"
# done

echo "Fertig! Optimierte Bilder liegen in: $DST"

Aufrufen mit Quell- und Zielordner:

./bilder-weboptimieren.sh ./mein_bilderordner ./fertig_fürs_web
  • Quellordner: Pflicht

  • Zielordner: Optional, sonst wird output verwendet.