Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03167.jsonl.gz/2019

Vor etwa 30 Jahren wurde das Projekt ImageMagick gestartet. Es handelt sich dabei um eine freie Software, die Bilder per Kommandozeile bearbeiten kann. Die Funktionen reichen vom Zusammenfügen mehrerer Bilder über das Hinzufügen und Erzeugen von einfachen Formen, Schrift, Verzerrungen, Größenveränderung und Drehen der Bilder bis hin zu Filterfunktionen wie Unschärfe, Kontrastanpassung oder Invertierung. Die Software umfasst mehrere Dienstprogramme für die Kommandozeile sowie eine für viele Programmiersprachen verfügbare Programmbibliothek, um die verfügbaren Funktionen direkt in einem Programm zu verwenden. Es eignet sich daher besonders zur Stapelbearbeitung von Bildern.
Dienstprogramme
- convert kann Dateiformate konvertieren, skalieren, weichzeichnen, beschneiden, entrauschen, dithern, drehen, spiegeln und vieles mehr.
- identify gibt eine Beschreibung des Formats und der Charakteristika einer oder mehrerer Grafikdateien aus.
- mogrify bietet dieselben Funktionen wie convert, wobei es im Unterschied zu diesem die Ursprungsdateien mit dem Ergebnis überschreibt und nicht in eine neue Datei schreibt.
- composite überlappt zwei Bilder.
- montage setzt mehrere Bilder zu einem zusammen.
- compare zeigt die Unterschiede zwischen zwei Grafiken an.
- stream kopiert einzelne oder mehrere Pixel-Komponenten eines Bildes in ein anderes Format.
- display zeigt ein Bild oder eine Bildersequenz über einen X-Server auf dem Bildschirm an.
- import erstellt Bildschirmfotos.
- conjure interpretiert Skripts in der Magick Scripting Language (MSL) und führt sie aus.
Hier im Artikel zeige ich Beispiele für convert, den wohl wichtigstem Befehl und composite für das Wasserzeichenbeispiel.
Beispiele nachvollziehen
Du benötigst eine Installation vom ImageMagick. Du kannst dir das Programm auf deinem lokalen Rechner oder du benutzt einfach die Kommandozeile deines Webhosting bei uns. Dort ist ImageMagick bereits installiert. Unter macOS geht das im Terminal Fenster, unter Windows mit Software wie Putty.
Mit dem Befehl
ssh [ftpUserName]@[ftp-host]
und anschliessender Passworteingabe (ebenfalls FTP Passwort) kannst du dich anmelden.
Du kannst dich ganz normal durch die Verzeichnisse bewegen (cd) und in ein Verzeichnis gehen, das Bilder enthält. Zum Testen kannst du auch ein Verzeichnis ablegen.
Wenn du es innerhalb des öffentlichen Bereichs anlegst, kannst mit dem Browser die Ergebnisse überprüfen. Dort siehst du auch die erheblichen Unterschiede in der Dateigrösse.
Convert
Als Beispiel habe ich ein grosses Bild von einem See in Neuseeland, das unter einer Creative Commons Lizenz steht (CC BY-SA 2.0) von Isabell Schulz. Das Orginalbild ist 5472 x 3648 Pixel und 5.1 Megabyte, bzw 5,100 Kilobyte gross.
Skalieren
Mi dem -resize Parameter lassen sich Bilder skalieren hier auf eine Höhe und Breite von jeweils 800 Pixel. Hochformatige Bilder haben dann 800 Pixel Höhe und Querformatige Bilder haben 800 Pixel Breite, immer bei Beibehaltung der Seitenverhältnisse des Orginalbildes (5472 x 3648 px)
convert lake.jpg -resize 800x800 resize_800_lake.jpg
Die Anzahl der Pixel kann auch prozentual verändert werden, hier um 50%.
convert lake.jpg 50% lake_50_prozent.jpg
Um ein Bild unabhängig der Seitenverhältnisse auf eine ganz bestimmte Pixelgröße zu zwingen, muss ein Ausrufezeichen hinter der Größenangabe geschrieben werden. Der Bildinhalt wird dabei gestretched
convert lake.jpg -resize 1280x400! resizeforce_1280x400_lake.jpg
Bilder beschneiden
Die Option hinter -crop gibt an, was aus dem Bild ausgeschnitten werden soll. 1280×400+200+2700 bedeutet von Links oben 200 Pixel nach rechts und 300 Pixel nach unten, dann einen Bereich von 500×500 ausschneiden. Mit der Option +repage werden die „canvas und offset“ Werte entfernt.
convert lake.jpg -crop 1280x400+200+2700 +repage crop_lake.jpg
Nun ist das mit der genauen Positionierung immer so eine Sache, daher gibt es den Parameter -gravity. Der Parameter -list erzeugt eine Liste der Möglichkeiten.
convert -list gravity
None
Center
East
Forget
NorthEast
North
NorthWest
SouthEast
South
SouthWest
West
Hier ein Beispiel mit der Gravity im Zentrum des Bildes. Das Bild soll auf 15% der Grösse beschnitten werden
convert lake.jpg -gravity Center -crop 15%x+0+0 +repage gravity_lake.jpg
Beschneiden und skalieren
convert lake.jpg -resize 1280x1280 -gravity Center -crop 1280x400+0+0 +repage header_lake.jpg
Format umwandeln
In ein anderes Format umwandeln geht ganz einfach:
convert lake.jpg lake.png
Bilder drehen
convert resize_800_lake.jpg -background orange -rotate 33 33lake.jpg
Wasserzeichen
Du brauchst eine Logo Datei und ein Bild. Ich nehme beispielsweise das Novatrend Logo und setze es in die 800px Variante des Sees nach rechts oben (northeast).
convert resize_800_lake.jpg novatrend.png -gravity northeast -geometry +10+10 -composite lake_novatrend.jpg
Weitere Möglichkeiten
Die obigen Beispiele waren wirklich nur eine kleine Auswahl der Möglichkeiten von ImageMagick. Auf dem Screenshot siehst du alle Parameter, die du für die Befehle convert und mogrify nutzen kannst. Die ausführliche Dokumentation dazu findest du hier http://www.imagemagick.org/script/command-line-options.php.
Batchbearbeitung
Richtig interessant wird die Arbeit mit ImageMagick, wenn du es von Programmiersprachen aus benutzt. Dann kannst du beispielsweise alle Bilder in einem Verzeichnis bearbeiten. Für PHP gibt es beispielsweise eine ausführliche Dokumentation mit Beispielen auf http://php.net/manual/de/book.imagick.php.
Anwendungen in CMS
Es gibt Plugins für WordPress, die ImageMagick nutzen um Bilder zu optimieren, beispielsweise ImageMagick Engine, ImageMagick Sharpen Resized Images und EWWW Image Optimizer. Für Drupal steht das Modul ImageMagick zur Verfügung. Für andere CMS gibt es oft eine Auswahlmöglichkeit innerhalb einer Erweiterung, ob die Bilder mit PHP GD oder ImageMagick bearbeitet werden sollen. Die Bearbeitung mit ImageMagick ist qualitativ besser.
Fazit
Wenn es um automatisierte Bildbearbeitung geht, so ist ImageMagick seit 30 Jahren ein wirklich gutes Tool. Da sich die grundsätzlichen Befehle seit dieser Zeit nicht sehr verändert haben, gibt es auch viele Tutorials im Netz, die noch immer aktuell sind.
tl;dr: Du kannst Bilder auf der Kommandozeile bearbeiten!