It's a kind of magic!

convert

01.07.2002
Zum ImageMagick-Paket gehören eine ganze Reihe von Tools zur Bildbearbeitung. Bei convert ist der Name Programm: Es konvertiert auf der Kommandozeile zwischen verschiedenen Grafikformaten. Darüber hinaus kann convert PostScript-Dateien erstellen, Bilder beschriften, Filter verwenden und vieles mehr.

Zu Befehl

Auch wenn sich viele Dinge bequem über grafische Oberflächen wie KDE oder GNOME regeln lassen - wer sein Linux-System richtig ausreizen möchte, kommt um die Kommandozeile nicht herum. Abgesehen davon gibt es auch sonst viele Situationen, in denen es gut ist, sich im Befehlszeilendschungel ein wenig auszukennen.

Um ein Bild vom JPEG- in das PNG-Format umzuwandeln, tippen Sie diesen einfachen Aufruf: convert bild.jpg bild.png - das Programm erkennt die Formate an der Dateiendung und weiß, in welches Format es umwandeln soll. Das Original-JPEG verschwindet dabei nicht, sondern bleibt zusätzlich zur PNG-Datei erhalten. Die Manpage listet die zahlreichen unterstützten Bildformate ausführlich auf. Darunter finden Sie auch verschiedene PostScript-Formate - praktisch, wenn man eben schnell ein Bild ausdrucken möchte. Der Parameter -page sorgt dafür, dass das Bild auf einer Druckseite richtig positioniert wird. Der Aufruf

convert -page A4 huehner.jpg document.ps

skaliert die Datei huehner.jpg so, dass sie eine A4-Seite gut ausfüllt (s. Abbildung 1).

Abbildung 1: Mit convert werden aus Bildern PostScript-Dateien

Wenn Sie sich einen schnellen Überblick über eine größere Menge von Bildern verschaffen möchten, können Sie mit convert ein sogenanntes "Visual Directory" anlegen. Der Aufruf

convert 'vid:@L: *.jpg' directory.jpg

verkleinert zunächst alle im Verzeichnis liegenden JPEG-Dateien. Diese werden in einer neuen Bilddatei (directory.jpg) unter Angabe ihres Namens, der Bildgröße in Pixeln und der Dateigröße abgelegt.

Noch mehr Zauberei

Zusammen mit den Optionen -font, -pointsize, -pen und -draw beschriftet convert Ihre Bilder. Bei den Schriftarten können Sie zwischen den Fonts des X-Servers und TrueType-Schriften wählen. Letztere werden unter Angabe des Dateinamens mit einem vorangestellten @ verwendet, also -font @font.ttf. Die Größe der Schrift wird mit der Option -pointsize angegeben. Für eine Schrift, die 16 Punkt groß sein soll, heißt die Angabe dann -pointsize 16. Bei der Auswahl einer Schriftart des X-Servers hilft das Tool xfontsel weiter, das anzeigt, welche Schriften in welchen Schriftschnitten, Zeichensätzen und Größen verfügbar sind. Starten Sie das Programm auf der Kommandozeile in einem Xterm und wählen Sie in den Dialogen die gewünschten Eigenschaften aus. Die Anzahl der passenden Schriften sollte sich immer weiter reduzieren, wie Sie an der Angabe oben rechts im Fenster erkennen können (siehe Abbildung 2: "4 names match"). Sind Sie mit der Auswahl zufrieden, klicken Sie auf select. Sie können den korrekten String (z. B. -font "-@L: *-helvetica-medium-r-@L: *-@L: *-12-@L: *-@L: *-@L: *-@L: *-@L: *-iso8859-@L: *") nun mit der mittleren Maustaste einfügen.

Abbildung 2: xfontsel in Aktion - so finden Sie die richtige Schrift

Mit dem Parameter -pen wird die Schriftfarbe festgelegt. Sie können aus sämtlichen Farben wählen, die Ihr X-Server bereitstellt. (Eine komplette Liste liefert das Kommando showrgb.) Der Parameter -draw spezifiziert, was gezeichnet werden soll (Kreis, Rechteck, Text, etc.). Am besten lässt sich die Kombination all dieser Optionen an einem Beispiel verdeutlichen:

convert -font @d-worcti.ttf -pointsize 50 -pen white -draw "text 50,50 'Viele Hühner'" huehner.jpg huehner_schrift.jpg

Hier wird mit der TrueType-Schrift d-worcti.ttf in 50 Punkt, weiß der Text "Viele Hühner" auf das Bild geschrieben. Positioniert ist der Text ausgehend von der linken oberen Ecke (0,0) 50 Pixel nach rechts und nach unten ("text 50,50"). Das beschriftete Bild wird huehner_schrift.jpg genannt und ist in Abbildung 3 zu sehen.

Abbildung 3: Beschriftete Hühner

Soll ein farbiger Rahmen um das Bild gemalt werden, können Sie den convert-Aufruf um die Parameter -mattecolor und -frame erweitern. Der folgende Aufruf zaubert einen blauen Rahmen, der vertikal und horizontal jeweils sechs Pixel breit ist:

convert -mattecolor blue -frame 6x6 huehner.jpg huehner_rahmen.jpg

Die passende Größe

Um Bilder größer oder kleiner zu machen, verwenden Sie die Option -geometry. Diese Angabe bezeichnet eine Art "Rahmen", in die das Bild hineinskaliert wird, wobei die Proportionen erhalten bleiben. Ein Bild in der Ausgangsgröße 320x200 wird mit -geometry 640x480 daher auf 640x400 skaliert. Das Seitenverhältnis bleibt gleich, und 80 Pixel bleiben gewissermaßen "übrig". Soll die volle Fläche ausgenutzt werden (um den Preis, dass das Bild verzerrt wird), verwenden Sie -geometry 640x480! (mit einem Ausrufezeichen dahinter). Alternativ können Sie die Option -geometry mit einer Prozentangabe versehen, z. B. -geometry 200%.

Da convert im ImageMagick-Paket angesiedelt ist, kann es auch mehrere Filter daraus verwenden. Mit -blur faktor wird das Bild unschärfer, mit -sharpen schärfer. Lustig ist die Anwendung des Filters -implode Hier werden die Pixel zur Mitte des Bildes hingezogen (siehe Abbildung 4).

Abbildung 4: Implodierende Hühner

Wem das Rumspielen mit Faktoren und Positionen im Kommandozeilenaufruf zu umständlich ist, wird sicherlich mit einem Bildbearbeitungsprogramm wie z. B. GIMP besser zurechtkommen. Wenn Sie aber ganze Bearbeitungsvorgänge automatisieren wollen, ist convert in Shell-Skripten unschlagbar. Um z. B. alle JPEGs in einem Verzeichnis in gleichgroße Thumbnails zu konvertieren, können Sie folgendes Shell-Skript basteln:

#!/bin/bash
for i in @L: *.jpg; do
  convert $i -geometry 75x75\! `basename $i .jpg`_small.jpg
done

Jede Datei mit der Endung ".jpg" wird der Variablen "i" zugewiesen. Für sie wird dann convert -geometry 75x75! (das Ausrufezeichen wird im Skript mit einem Backslash maskiert) aufgerufen. Der erste Parameter ist die Ausgangsdatei ("$i"), der zweite die Ausgabedatei, gebildet aus dem "Basisnamen" ohne die Endung, dem String "_small" und wiederum der Endung ".jpg".

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Related content

Kommentare