Bash-Scripte für Bildbearbeitung
16 Kommentare | Rubrik: Linux 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

1 Kommentar
Seite 1 von 1 1
schrieb am 12.06.2009 19:42
Hallo Rainer,
im Skript für die Dateiumbenennung fehlt vor der geschweiften Klammer das $-Zeichen:
#!/bin/bash
for f in *.jpg;
do
echo "Processing $f";
mv $f ${f/.jpg}_small.jpg;
done
Dann läuft das Skript (ohne geht es bei mir nicht).
In dem Beispiel, das ich hierfür gefunden habe steht statt / das %-Zeichen. Aber mit / geht's auch.
Viele Grüße
Volker