Inhalt: [-]
Unter jedem Betriebssystem kann man Bilder einfach und schnell für das Web optimieren und im WebP-Format konvertieren – ganz bequem mit einem Klick.
Für meine Artikel benötige ich kleinere, optimierte Bilder als WebP-Format. Das ist entscheidend für SEO und das Google-Ranking, weil Google die Ladezeiten von Webseiten berücksichtigt und schneller ladende Seiten mit einem besseren Ranking belohnt.
Aber die Photomanager sind oft komplex und wenig benutzerfreundlich unter Linux und Windows. Es gibt aber eine einfache Methode, Bilder effizient für das Web zu optimieren und zu exportieren, die unter Linux und Windows gleichermaßen funktioniert.
Installation
Ganz simpel und schnell erledigt!
ImageMagick installieren
Installiere ImageMagick auf Deinem System, um die WebP-Konvertierung durchführen zu können.
Script abspeichern
Speichere das gewählte Script an einem geeigneten Ort auf Deinem System.
Script integrieren
Integriere das Script in das Kontextmenü Deines Dateimanagers, damit Du es bequem ausführen kannst.
Scripte
Ich erkläre hier die Vorgehensweise für verschiedene Linux-Distros und Windows, aber fangen wir aber zuerst mit dem Script an:
Einfaches Script
Ein einfaches Script, dessen Erläuterungen Du weiter unten findest.
Dieses Skript konvertiert Bilder in das WebP-Format, skaliert sie auf eine Größe von 1280 × 1280 Pixel und optimiert sie auch noch. Es ist ideal für die Batch-Verarbeitung weniger Bilder, da es nur einen Prozessorkern benutzt.
Achtung: Es hat keine Fehlermeldungen, beispielsweise wenn Du eine Datei konvertieren willst, die gar keine Bilddatei ist. In dem Fall wird einfach keine Ausgabedatei erstellt. Das Script soll nur einfach und übersichtlich sein.
Achtung: Unter Windows ist das Script ein wenig anders, Du findest es im Abschnitt für Windows.
Du kannst die Parameter für den convert-Befehl anpassen und unter anderem die Auflösung ändern.
Füge den folgenden Inhalt in das eben erstellte Script ein. Strg-C zum Kopieren und zum Einfügen im Terminal Strg-Shift-V.
#!/bin/bash # Verzeichnis für WebP-Bilder einmalig erstellen dir=$(dirname "$1") # Wir nehmen das Verzeichnis der ersten Datei als Basis webp_dir="$dir/webp" mkdir -p "$webp_dir" # Erstelle das Verzeichnis, falls es noch nicht existiert # Schleife durch alle übergebenen Dateien for file in "$@"; do filename=$(basename "$file") name="${filename%.*}" # Bild skalieren auf max. 1280px Seitenlänge, Weißabgleich und nach WebP konvertieren convert "$file" -resize 1280x1280\> -auto-level -enhance "$webp_dir/${name}.webp" done # Benachrichtigung nach Abschluss notify-send "WebP-Konvertierung" "Bilder wurden erfolgreich umgewandelt!"
Schnelleres Script
Heutzutage, wo selbst die langsamsten Computer mehrere Kerne haben, nutzen viele Anwendungen dieses Potenzial nicht aus. Wir hingegen setzen auf maximale Performance! Warum warten, wenn Du die Leistung Deiner Hardware voll ausnutzen kannst? :-) Mit dem folgenden Skript kannst Du Deine Bilder blitzschnell konvertieren – ohne unnötige Wartezeiten.
Dieses Skript wandelt Bilder in das WebP-Format um und optimiert und verkleinert sie auf 1280 × 1280 Pixel. Es nutzt parallele Verarbeitung, um das Ganze schneller zu machen. Deshalb eignet es sich ideal, um viele Bilder auf einmal zu bearbeiten.
Achtung: Es gibt keine Fehlermeldungen, wenn Du eine Datei konvertieren willst, die gar keine Bilddatei ist. Dann wird einfach keine Ausgabedatei erstellt. Das Script soll einfach und übersichtlich sein.
#!/bin/bash # Zielverzeichnis erstellen (Unterordner /webp) # Wir nehmen das Verzeichnis der ersten Datei als Basis dir=$(dirname "$1") webp_dir="$dir/webp" mkdir -p "$webp_dir" # Funktion zur Konvertierung einer einzelnen Datei convert_image() { file="$1" webp_dir="$2" filename=$(basename "$file") name="${filename%.*}" convert "$file" -resize 1280x1280\> -auto-level -enhance "$webp_dir/${name}.webp" } export -f convert_image # Funktion parallel verfügbar machen # Schleife durch alle übergebenen Dateien und parallel verarbeiten printf "%s\n" "$@" | xargs -n 1 -P $(nproc) -I {} bash -c 'convert_image "$@"' _ {} "$webp_dir" # Benachrichtigung am Ende notify-send "WebP-Konvertierung" "Bilder wurden erfolgreich umgewandelt!"

Erläuterungen der Scripte
Optional: Dich interessiert, wie die Scripte funktionieren? Du möchtest die Parameter ändern? Dann lies bitte hier weiter. Ansonsten überspringe diesen Abschnitt.
Shebang
#!/bin/bash
Das bedeutet, dass das Script mit der Bash-Shell ausgeführt werden soll.
dirname „$1“
Wenn Du eine Datei übergibst, wird der Pfad der ersten Datei ausgelesen.
dir=$dirname ($1):
Der extrahierte Verzeichnispfad wird in der Variable dir gespeichert.
webp_dir=“$dir/webp“
Hier wird festgelegt, dass die WebP-Bilder in einem Unterordner (webp) gespeichert werden. Der Ordner wird im selben Verzeichnis wie die erste übergebene Datei angelegt.
mkdir -p „$webp_dir”
Dieser Befehl erstellt ein neues Verzeichnis. Der -p-Schalter stellt sicher, dass das Verzeichnis nur erstellt wird, wenn es noch nicht existiert.
For-Schleife für die Eingabedateien
for file in „$@“; do
Diese Zeile startet eine Schleife, die für jede Datei im übergebenen Argument („$@“) einmal durchläuft.
„$@“ steht dabei für alle Argumente (Dateien), die beim Aufruf des Scripts übergeben werden.
Variablen für Dateipfade und Dateinamen
dir=$(dirname „$file“):
Der Verzeichnispfad der Datei (z. B. /home/user/Bilder) wird ausgelesen.
filename=$(basename „$file“):
Der Dateiname wird ohne den Pfad ausgelesen.
name=“${filename%.*}“:
Entfernt die Dateiendung aus dem Dateinamen. Dann bleibt nur der Basisname.
Bildbearbeitung und Konvertierung
convert „$file”:
Hier wird ImageMagick verwendet, um das Bild zu bearbeiten.
-resize 1280×1280>
Dieser Befehl verändert die Größe des Bildes. Dabei darf es maximal 1280 Pixel in Höhe oder Breite groß sein. Wenn das Bild kleiner ist, wird es nicht vergrößert.
-auto-level:
Dieser Parameter stellt den Bildkontrast automatisch ein, indem er die Helligkeit im Bild anpasst.
„$dir/${name}.webp“:
Das Bild wird im WebP-Format gespeichert und hat die gleiche Bezeichnung wie das Original, aber die Endung .webp (z. B. wird „bild.jpg“ zu „bild.webp“).
Warum diese Reihenfolge?
Skalierung zuerst:
Wenn man das Bild zuerst skaliert, werden alle nachfolgenden Anpassungen auf die gewünschte kleinere Endgröße angewendet. So geht die Konvertierung schneller.
Enhance zuletzt:
»Enhance“ kommt zum Schluss, weil es die Details schärfer macht und den Kontrast der Mitteltöne verbessert. Das funktioniert optimal, wenn das Bild bereits skaliert und richtig belichtet ist.
Schleifenende
done
Damit endet die for-Schleife.
Benachrichtigung nach der Konvertierung
notify-send „WebP-Konvertierung“ „Bilder wurden erfolgreich umgewandelt!“
Diese Zeile zeigt eine Benachrichtigung auf Deinem Bildschirm an. Sie sagt Dir, dass die Bilder erfolgreich umgewandelt wurden. Das bedeutet aber nicht unbedingt, dass alle Bilder erfolgreich konvertiert wurden. Es gibt ja keine Fehlerhandhabung. :-)
Die parallele Verarbeitung des schnelleren Scriptes
„convert_image() {…}“:
Das schnellere Skript fügt die Konvertierung in eine Funktion (convert_image) ein. Diese Funktion wird dann in der For-Schleife verwendet.
export -f convert_image
Der Befehl sorgt dafür, dass die Funktion „convert_image“ auch in den parallel gestarteten Prozessen verfügbar ist. Wenn man parallele Prozesse mit „xargs“ startet, läuft jeder Prozess in einer eigenen Unter-Shell. Ohne die Option „-f export“ wäre die Funktion in diesen Unter-Shells nicht verfügbar.
printf „%s\n“ „$@“
Der Befehl gibt die Dateinamen als Zeilen aus. So können sie an den nächsten parallelen Befehl weitergereicht werden. In diesem Fall wird die Ausgabe an xargs übergeben, welches die parallele Verarbeitung steuert.
xargs -n 1 -P $(nproc) -I {} bash -c ‚convert_image „$@“‚ _ {} „$webp_dir“
Dieser Befehl führt xargs aus, um die Dateien parallel zu verarbeiten. Die Parameter erkläre ich nun:
Xargs im Einzelnen
-n 1:
Dieser Parameter sorgt dafür, dass xargs für jede Datei einen einzelnen Befehl ausführt. Es wird also für jede Datei ein separater Prozess gestartet.
-P $(nproc):
Dieser Parameter gibt an, wie viele parallele Prozesse ausgeführt werden sollen. Der Befehl $(nproc) gibt die Anzahl der CPU-Kerne des Systems zurück und stellt sicher, dass so viele Prozesse gleichzeitig laufen, wie Kerne verfügbar sind.
-I {}:
Dieser Parameter ersetzt den Platzhalter {} mit dem Dateinamen für jeden Befehl, der von xargs ausgeführt wird.
bash -c ‚…‘:
Mit dem Befehl bash -c wird der angegebene Befehl in einer neuen Shell ausgeführt. Dies ermöglicht es, die Konvertierungen parallel in separaten Prozessen laufen zu lassen.
bash -c ‚convert_image „$@“‚ _ {}:
Dieser Befehl führt die Funktion convert_image aus. Der Platzhalter {} wird durch den jeweiligen Dateinamen ersetzt. Die _ sorgt dafür, dass der Dateiname korrekt an convert_image übergeben wird, da in einem Subprozess der Dateiname anders behandelt wird.
Gnome (Nautilus)
Nautilus ist der Dateimanager für folgende Distributionen: Ubuntu, Fedora Workstation, Debian GNOME, Manjaro GNOME, openSUSE GNOME, Arch Linux (mit GNOME), EndeavourOS GNOME, Pop!_OS, Zorin OS, AlmaLinux GNOME, Rocky Linux GNOME.
Konverter installieren
Wir benötigen ImageMagick als Konverter für unsere Bilder. Den kannst Du schnell installieren.
Terminal öffnen (Strg+Alt+T) und Folgendes eingeben:
Ubuntu, Pop!_OS, Zorin OS:
sudo apt update && sudo apt install imagemagick -y
Fedora Workstation:
sudo dnf install imagemagick
Debian GNOME:
sudo apt update && sudo apt install imagemagick -y
Manjaro GNOME, EndeavourOS GNOME, Arch Linux (mit GNOME):
sudo pacman -Syu imagemagick
openSUSE GNOME:
sudo zypper install imagemagick
AlmaLinux GNOME, Rocky Linux GNOME:
sudo dnf install imagemagick
Script erstellen
Nun erstellen wir uns unser Script:
nano "~/.local/share/nautilus/scripts/Convert to WebP"
In dieses fügen wir nun mit Strg-Shift-V den oben angegebenen Inhalt des jeweiligen Skripts ein, das wir verwenden wollen: „Einfach“ oder „Schnell“.
Speichere das Skript mit Strg+S und verlasse den Editor mit Strg+X.
Jetzt noch das Script ebenfalls ausführbar machen:
chmod +x "~/.local/share/nautilus/scripts/Convert to WebP"
Fertig!
Nun kannst Du die Bilder markieren, die Du konvertieren willst, und mit der rechten Maustaste ganz einfach konvertieren!
KDE (Dolphin)
Dolphin ist der Dateimanager für folgende Distributionen: Kubuntu, Fedora KDE Spin, openSUSE KDE, Manjaro KDE, EndeavourOS KDE, Garuda Linux KDE, Mageia KDE, PCLinuxOS KDE, KDE Neon.
Konverter installieren
Wir benötigen ImageMagick als Konverter für unsere Bilder. Den kannst Du schnell installieren.
Terminal öffnen (Strg+Alt+T) und Folgendes eingeben:
Kubuntu, KDE Neon:
sudo apt update && sudo apt install imagemagick -y
Fedora KDE Spin:
sudo dnf install imagemagick
openSUSE KDE:
sudo zypper install imagemagick
Manjaro KDE, EndeavourOS KDE, Garuda Linux KDE:
sudo pacman -Syu imagemagick
Mageia KDE:
sudo urpmi imagemagick
PCLinuxOS KDE:
sudo apt-get install imagemagick
Script erstellen
Nun erstellen wir uns unser Script:
nano ~/.local/bin/Convert_to_WebP
In dieses fügen wir jetzt mit Strg+Shift+V den oben angegebenen Inhalt des jeweiligen Scripts ein, den wir verwenden wollen: „Einfach“ oder „Schnell“.
Speichere das Script mit Strg+S und verlasse den Editor mit Strg+X.
Jetzt noch das Script ebenfalls ausführbar machen:
chmod +x ~/.local/bin/Convert_to_WebP
Script in Dolphin integrieren
Um das Script über das Kontextmenü in Dolphin auszuführen, gehe folgendermaßen vor:
- Öffne Dolphin und gehe zu Einstellungen > Konfigurieren Dolphin.
- Wähle Dateitypen und klicke auf Aktionen.
- Klicke auf Hinzufügen und wähle Befehl ausführen.
- Gib der Aktion einen Namen, z. B. „Convert to WebP“.
- Unter Befehl gib den folgenden Pfad zum Script an:
bash ~/.local/bin/Convert_to_WebP %fbash ~/.local/bin/Convert_to_WebP %f
bash ~/.local/bin/Convert_to_WebP %f
- Optional kannst Du ein Symbol für die Aktion hinzufügen.
- Klicke auf OK – nun kannst Du das Script über das Rechtsklick-Menü in Dolphin ausführen.
Fertig!
Nun kannst Du die Bilder markieren, die Du konvertieren willst, und mit der rechten Maustaste ganz einfach konvertieren!
XFCE (Thunar)
Thunar ist der Dateimanager für folgende Distributionen: Xubuntu, Linux Mint XFCE, Fedora XFCE Spin, Manjaro XFCE, EndeavourOS XFCE, MX Linux XFCE, Debian XFCE.
Konverter installieren
Wir benötigen ImageMagick als Konverter für unsere Bilder. Den kannst Du schnell installieren.
Terminal öffnen (Strg+Alt+T) und Folgendes eingeben:
Xubuntu, Linux Mint XFCE:
sudo apt update && sudo apt install imagemagick -y
Fedora XFCE Spin:
sudo dnf install imagemagick
Manjaro XFCE, EndeavourOS XFCE, MX Linux XFCE:
sudo pacman -Syu imagemagick
Debian XFCE:
sudo apt update && sudo apt install imagemagick -y
Script erstellen
Um das Script zu erstellen, öffne den Editor mit folgendem Befehl:
nano ~/.local/bin/Convert_to_WebP
(Hier speichern wir das Script in ~/.local/bin, was es systemweit ausführbar macht.)
Script einfügen
Kopiere den Inhalt des gewünschten Scripts (z. B. das „Einfach“- oder „Schnell“-Script) und füge ihn mit Strg+Shift+V in den Editor ein.
Speichern und Editor schließen
Speichere das Script mit Strg+S und verlasse den Editor mit Strg+X.
Script ausführbar machen
Damit das Script ausgeführt werden kann, musst Du es ausführbar machen. Gib folgenden Befehl im Terminal ein:
chmod +x ~/.local/bin/Convert_to_WebP
Script in Thunar integrieren
Jetzt musst Du das Script in Thunar integrieren, sodass Du es über das Kontextmenü aufrufen kannst. Gehe folgendermaßen vor:
- Öffne Thunar und gehe zu Bearbeiten > Einstellungen > Benutzeraktionen.
- Klicke auf Hinzufügen.
- Gib der Aktion einen Namen, z. B. „Convert to WebP“.
- Bei Befehl gib den Pfad zum Script an:
bash ~/.local/bin/Convert_to_WebP %fbash ~/.local/bin/Convert_to_WebP %f
bash ~/.local/bin/Convert_to_WebP %f
- Wähle unter „Aktionen anwenden auf“ aus, dass es nur auf Bilder angewendet werden soll.
- Klicke auf OK, und die Aktion wird in Thunar angezeigt. Du kannst sie nun direkt über das Rechtsklick-Menü auf eine Bilddatei anwenden.
Fertig!
Nun kannst Du das Script bequem über das Kontextmenü von Thunar auf Bilddateien anwenden!
Windows (Explorer)
Der Explorer ist der Dateimanager für folgende … äh … Distributionen: Windows :-)
ImageMagick installieren
Lade ImageMagick von der offiziellen Website herunter und installiere es. Wenn Du das Ganze installierst, achte bitte darauf, die Option „Install legacy utilities (e.g., convert)“ zu aktivieren.
Ordner C:\Scripts erstellen
Wenn Du das Script in C:\Scripts speichern möchtest, prüfe zuerst, ob dieser Ordner bereits existiert. Falls nicht, öffne PowerShell und führe folgenden Befehl aus, um den Ordner zu erstellen:
New-Item -ItemType Directory -Path "C:\Scripts" -Force
Anschließend kannst Du das folgende Script dort speichern.
PowerShell-Script erstellen
Öffne den Editor (Notepad), kopiere das folgende Script hinein:
param ( [string]$inputPath ) $outputPath = "$inputPath\webp" New-Item -ItemType Directory -Path $outputPath -Force | Out-Null Get-ChildItem -Path $inputPath -Include *.jpg, *.png -Recurse | ForEach-Object { $inputFile = $_.FullName $outputFile = "$outputPath\$($_.BaseName).webp" magick convert "$inputFile" -resize 1280x1280 -auto-level -enhance "$outputFile" } Write-Host "Bilder wurden erfolgreich konvertiert!"
Speichere es als „C:\Scripts\convert_to_webp.ps1“ ab.
PowerShell-Skripts erlauben
Mit dem folgenden Befehl kannst Du PowerShell-Skripte ausführen, die auf Deinem eigenen Computer gespeichert sind (z. B. unser „convert_to_webp.ps1“-Skript), ohne auf nervige Sicherheitswarnungen zu stoßen.
Drücke die Windows-Taste und tippe „PowerShell“ in das Suchfeld ein. In der Ergebnisliste sollte „Windows PowerShell“ erscheinen. Klicke mit der rechten Maustaste darauf und wähle „Als Administrator ausführen“ aus.
Gib nun bitte Folgendes ein:
Set-ExecutionPolicy RemoteSigned
Bestätige das Ganze mit „Ja“ (J).
Füge das Script in das Rechtsklick-Menü ein.
Drücke Win + R, tippe „regedit“ und öffne den Registrierungs-Editor. Navigiere zu:
HKEY_CLASSES_ROOT\Directory\Background\shell\
Erstelle einen neuen Schlüssel und nenne ihn „Convert to WebP“. Darin erstelle einen weiteren Schlüssel mit dem Namen „command“ und setze den Wert auf:
powershell -ExecutionPolicy Bypass -File "C:\Scripts\convert_to_webp.ps1" "%V"
Ersetze „C:\Scripts“ mit dem richtigen Pfad, falls Du das Script an einem anderen Ort speicherst.
Und jetzt kannst Du mit einem Rechtsklick auf die Bilder und „Convert to WebP“ in einem Ordner alle Bilder automatisch umwandeln lassen
Feedback?
Neulich hat mich jemand gefragt, ob es mir schwerfällt, Aufgaben zu Ende zu bringen und ob ich nur die Aufgaben erledige, die mir Spaß machen. Hier ist die Antwort:
Wie Du in der Einleitung lesen konntest, brauchte ich nur eine einfache Lösung, um Bilder zu konvertieren und zu optimieren. Also habe ich ChatGPT um Skripte gebeten, mit denen ich dies mit einem Rechtsklick auf die Dateien erledigen kann. Diese habe ich so lange ausprobiert, bis ich das für mich Beste gefunden hatte.
Soweit so gut.
Meine Website besteht zu 90 % aus Inhalten, die ich nur schreibe, weil ich sonst irgendwann vergessen würde, wie etwas funktioniert. Kein Witz! Also dachte ich mir, ich schreibe auch eine Anleitung, wie man diese Skripte in einer neuen Betriebssystemversion wieder einbaut. Denn nach ein paar Jahren (ich benutze Ubuntu LTS, das jahrelang Updates bekommt) hätte ich sonst alles vergessen.
Ich ließ den Inhalt des kurzen Artikels überprüfen und fragte dann die KI, ob sie mir auch sagen sollte, wie das mit anderen Linux-Distributionen funktioniert. Ich sagte: „Ja!“ – und das war ein großer Fehler. :-( Eins kam zum anderen, Windows kam dazu und dann habe ich die Parallelisierung des Skripts auch nicht ganz verstanden …
Ich ließ es mir alles erklären und … das musste natürlich auch noch in diesen Artikel einfließen. Und dann kam dies und das … so habe ich am Ende Teile dieses Artikels mit verschiedenen KI-Systemen erstellt.
Es war trotzdem ziemlich aufwendig, weil KI-Systeme leider oft Fehler machen. Und diese Fehler sind oft schwerwiegender als man denkt – manchmal fällt ein ganzer Arbeitsschritt einfach weg! Auch die Geschichte mit den verschiedenen Paketmanagern hatten die KIs einfach vergessen. Von den Pfaden unter Windows ganz zu schweigen.
Ich habe alles überprüft und wenn es noch Fehler gibt, dann sind diese meine Schuld!
Wenn also etwas bei Dir schiefläuft oder Du Dich ärgerst, lass die Fehlermeldungen und Hasskommentare einfach in den Kommentaren! Ich sehe zu, dass ich helfen kann.
So, und jetzt kann ich den Artikel beenden, für den ich diesen gottlosen Rechtsklick-WebP-Scheiß überhaupt gebraucht habe!