Was ist der Unterschied zwischen convert und mogrify?
Die Linux-Kommandozeile, insbesondere ImageMagick, eignet sich hervorragend, um Bilder schnell zu modifizieren und zu verarbeiten. ImageMagick ist allerdings verwirrend, da es eine Tool-Sammlung ist und Du mit weiteren Befehlen hantieren musst. convert und mogrify sind zwei der Tools, womit Du Bilder ändern kannst. Die beiden Tools sind sich ziemlich ähnlich, aber doch unterschiedlich.
Der Hauptunterschied zwischen den beiden Befehlen ist, dass convert eine neue Datei erstellt, während mogrify Änderungen an einer bestehenden Datei vornimmt.
Der Befehl convert lässt sich unter anderem nutzen, um Bilddateien von einem Format in ein anderes zu konvertieren. Zudem kannst Du die Größe von Bildern ändern, Fotos drehen und zuschneiden. Mit mogrify kannst Du die gleichen Änderungen wie mit convert durchführen, aber die Änderungen werden, wie bereits erwähnt, direkt an der bestehenden Datei vorgenommen. Es wird also keine neue Datei erstellt.
Ein Beispiel für den Einsatz von convert:
konvertieren eingabe.jpg ausgabe.png
Der Befehl konvertiert die Datei eingabe.jpg in das Format ausgabe.png.
Ein Beispiel mogrify:
mogrify -resize 400x400 eingabe.jpg
Damit änderst Du die Größe der Datei eingabe.jpg 400 Pixel Breite und 400 Pixel Höhe, oder 400×400 Pixel.
In den meisten Fällen lassen sich convert und mogrify austauschbar einsetzen. Musst Du allerdings viele Bilder oder Fotos ändern, dann ist mogrify effizienter, da nicht für jede Änderung eine neue Datei erstellt wird. Möchtest Du allerdings die Originale nicht ändern, ist convert die bessere Option.
mogrify und convert in einem Bash-Script
#!/bin/bash
# aktuelles Verzeichnis ermitteln
current_dir=$(pwd)
# Alle Dateien im aktuellen Verzeichnis durchlaufen
for file in *.jpg; do
# Verkleinere das Bild auf 50 % seiner Originalgröße
mogrify -resize 50% "$file"
done
Das funktioniert mit convert natürlich ähnlich:
#!/bin/bash
# aktuelles Verzeichnis ermitteln
current_dir=$(pwd)
# Alle Dateien im aktuellen Verzeichnis durchlaufen
for file in *.jpg; do
# Verkleinere das Bild auf 50 % seiner Originalgröße
convert -resize 50% "$file" "${file%.jpg}_50.jpg"
done
Bei beiden Programmen werden die verkleinerten Bilder im gleichen Verzeichnis gespeichert. Der Unterschied ist, dass bei der convert-Variante das Bild als {dateiname}_50.jpg abgespeichert wird.
Das Ganze funktioniert aber auch als Einzeiler direkt auf der Kommandozeile, falls Du kein Script abspeichern möchtest. Hier als Beispiel mit convert:
for i in *.jpg; do convert "$i" -resize 50% "${i%.jpg}_50.jpg"; done
Du siehst also, dass Du mit den beiden Tools aus der ImageMagick-Suite schnell und bequem viele Fotos bearbeiten kannst. Was Du noch mit den beiden Tools anstellen kannst, findest Du in den jeweiligen man pages: man convert und man mogrify.