Wiki

Imagemagick

Imagemagick

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

logo.png ImageMagick ist ein freies, quelloffenenes Softwarepaket zur Erstellung und Bearbeitung von Rastergrafiken. ImageMagick kann momentan mehr als 90 der meistverwendeten Bildformate lesen, verändern und schreiben. Außerdem lassen sich Bilder dynamisch generieren, weshalb es auch im Bereich der Webanwendungen verwendet wird.

Installation

Bevor die beschriebenen Tools benutzt werden können, muss das Paket

  • imagemagick

installiert werden [1].

Enthaltene Werkzeuge

Convert

Möchte man ein Bild in seiner Beschaffenheit ändern, so kann man den Befehl convert nutzen. Nur als Beispiel sollen hier drei Möglichkeiten vorgestellt werden.

convert bild.jpg bild.png              # Transformiert ein Bild in ein anderes Format
convert bild.jpg -resize 50% bild.png  # Neues Format plus um 50% verkleinern 

Wer gleich mehrere Bilder auf einen Rutsch bearbeiten möchte, kann dies auch mit einem simplen Skript machen

#!/bin/bash
for i in *.png
do
  convert "$i" -geometry 100x100 "thumbnail_$i"
done

Import

Das Tool bietet die Möglichkeit einen Screenshot des gesamten Bildschirms, eines Fensters oder eines definierten Ausschnittes zu erzeugen.

Obwohl "import" ein CLI-Tool (Command-Line-Interface) ist, hilft in den letzten zwei Fällen die Maus bei der Erzielung des gewünschten Ergebnisses; d.h. einfach im Terminal [3] den Befehl

import window.png 

eingeben und ausführen, dann mit der Maus auf das gewünschte Fenster klicken oder den Ausschnitt definieren und fertig. Natürlich kann man einen Ausschnitt auch vorher definieren, z.B. den rechten oberen Bereich des Bildschirms

import -window root -crop 512x256-0+0 -quality 90 corner.png 

Montage

Hat man einen komplizierten Sachverhalt mit Hilfe einer Bildersammlung festgehalten, ist es empfehlenswert das Ganze als PDF-Dokument zu konvertieren. Wenn man aber ein solches Dokument erzeugt hat, wird üblicherweise jedes Bild auf einer neuen Seite angezeigt.

Mit Hilfe des Befehls "montage" im Terminal [2] werden die Bilder zu einem großen Bild zusammengefügt, d.h. in diesem Fall aneinander gehängt und ins pdf-Format umgewandelt. Es entsteht der Eindruck eines "Filmstreifens". Jedes Bild behält im unteren Bildbereich die ursprüngliche Dateibezeichung als label.

montage -label %f -geometry 800x600+10+10 *.png test.pdf 

Die Bilder können vorher mit "import" erzeugt werden.

Weitere Tools

Das Paket imagemagick bringt folgende CLI-Tools mit:

  • animate

  • compare

  • composite

  • conjure

  • display

  • identify

  • import

  • mogrify

  • montage

Parameter

Jedes CLI-Tool für sich hält eine ganze Menge Parameter bereit. Eine Auflistung aller Parameter samt einiger Beispiele ist zu finden unter:

  • /usr/share/doc/imagemagick/index.html

Bilder mit Wasserzeichen versehen

Mit Hilfe von Imagemagick lassen sich ganz einfach sichtbare Wasserzeichen in JPEG-Bilder einbringen. Das folgende kleine Bash-Skript erleichtert die Arbeit:

# Wasserzeichentext in alle JPEG Bilder aus diesen Verzeichnis einfuegen
# Der Wasserzeichentext wird unten links ins Bild eingebracht
# Sie koennen folgende Parameter anpassen:
Textabstandvonlinks=10
Textabstandvonunten=10
Schriftgroesse=10
PfadFonts="/usr/share/fonts/truetype/msttcorefonts"
# Pfad ist je nach Distribution unterschiedlich!
Schriftart="Arial.ttf"
Schriftfarbe="white"
# Moegliche Farben koennen aufgelistet werden mit dem Befehl: convert -list color
Wasserzeichentext="Copyright Ubuntu"


# Programmbeginn
echo "Textabstand von links: $Textabstandvonlinks"
echo "Textabstand von unten: $Textabstandvonunten"
echo "Schriftgoesse: $Schriftgroesse"
echo "Schriftart: $Schriftart"
echo "Schriftfarbe: $Schriftfarbe"
echo "Wasserzeichentext: $Wasserzeichentext"
echo " "
ls -1 *.JPG *.jpg | while read file;
 do {
horizontal=`identify -verbose $file | grep Geometry: | awk {'print $2'} |cut -d"x" -f 1`
vertikal=`identify -verbose $file | grep Geometry: | awk {'print $2'} |cut -d"x" -f 2`
X=$Textabstandvonlinks
Y=$(($vertikal - $Textabstandvonunten))
convert -font $PfadFonts/$Schriftart -pointsize $Schriftgroesse -fill $Schriftfarbe -draw "text $X, $Y '$Wasserzeichentext'" "$file" "`basename Wasserzeichen_"$file"`";
echo "Bearbeite Datei $file"
}
done
echo "Wasserzeichen wurden erfolgreich eingearbeitet"
exit
# Programmende


Diese Revision wurde am 27. Oktober 2009 um 18:04 Uhr von march erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Grafik, Shell

Passwort vergessen?