Skip to main content

Bash-Scripte für Bildbearbeitung

Wer schnell viele Bilder unter Linux bearbeiten will hat die Möglichkeit ImageMagick zu benutzen. Es eignet sich sowohl für Server ohne GUI, als auch Desktop-Rechner. Diese einfache Bash-Skript-Sammlung ermöglicht die Stapelverarbeitung und als Vorlage für den Bau komplexere Skripte genutzt werden.

Unter Linux hat man die Möglichkeit z.B. GIMP zur Fotobearbeitung zu nutzen. GIMP bietet die Möglichkeit das sogenannte Skript-Fu zu verwenden. Hat man nun die Bilder bereits auf dem Webserver steht einem meist keine GUI und auch kein GIMP zur Verfügung. Als Alternative zum lästigen Herunterladen und lokalen Bearbeiten steht ImageMagick zur Verfügung. ImageMagick ist eine Software Suite mit der sich Bilder in über 100 verschiedenen Formaten erstellen, bearbeiten und zusammensetzen lassen. Fertige Pakete gibt es für fast jede Distribution ansonsten kann man sich die aktuelle Version von www.imagemagick.org/ herunterladen und installieren.

Hat man auf dem Server einmal ImageMagick installiert, gibt es die Möglichkeit sogenannte Bash-Skripte oder Shell-Skripte zu erstellen. Mit dieser Stapelverarbeitung lassen sich schnell größere Mengen an Bilder bearbeiten, um beispielsweise die Größe herunter zu rechnen.

Hierzu erstellt man z.B. mit VIM eine neue Datei

 

$ vim resize1024

 

fügt das entsprechende Skript ein und muss anschließend die Datei nur noch als ausführbar kennzeichnen

 

$ chmod u+x resize1024

 

Der Aufruf der Datei im jeweiligen Verzeichnis erfolgt mit

 

$ ./resize1024

 

Die Eingabe erfolgt immer ohne das "$"-Zeichen

Größe ändern

Bilder, im Verzeichnis in dem auch das Skript liegt, auf eine Größe von 1024x768 Pixel mit der JPG-Qualität 85 (von 100) konvertieren.
Das Skript erstellt dabei im Bilderverzeichnis einen Ordner "small", in dem die konvertierten Bilder gespeichert werden.

 

#!/bin/bash
mkdir small
for f in *.jpg
do
   echo "Processing $f";
   convert $f -quality 85 -resize 1024x768 small/$f.jpg
done

 

Umbenennen

Umbenennen aller Bilder, im Verzeichnis in dem auch das Skript liegt, zu DATEINAME_small.jpg

 

#!/bin/bash
for f in *.jpg;
do
    echo "Processing $f";
    mv $f {f/.jpg}_small.jpg;
done

 

Wasserzeichen hinzufügen

Fügt allen Bildern, im Verzeichnis in dem auch das Skript liegt, in der rechten unteren Ecke ein Wasserzeichen hinzu. Das Wasserzeichen befindet sich im aktuellen Verzeichnis in der Datei wasserzeichen.png mit einer Alpha-Transparenz. Das Skript erstellt dabei im Bilderverzeichnis einen Ordner "wasserzeichen", in dem die neuen Bilder gespeichert werden.

 

#!/bin/bash
mkdir wasserzeichen
for f in *.jpg;
do
   echo "Processing $f";
   composite -dissolve 25% -gravity southeast wasserzeichen.png $f wasserzeichen/$f.jpg
done
Back