Home / LinuxUser / 2002 / 07 / convert

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Eingedost
(161 Punkte bei 4 Stimmen)
Aufteiler
(161 Punkte bei 4 Stimmen)

Heftarchiv

LinuxUser Heftarchiv

EasyLinux Heftarchiv

Ubuntu User Heftarchiv

Ubuntu User Heftarchiv

Partner-Links:

Das B2B Portal www.Linx.de informiert über Produkte und Dienstleistungen.

Aufmacher Artikel

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

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

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

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

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".

Tip a friend    Druckansicht Bookmark and Share
Kommentare

2350 Hits
Wertung: 128 Punkte (9 Stimmen)

Schlecht Gut

Infos zur Publikation

Infos zur Publikation

LinuxUser 05/2014

Aktuelle Ausgabe kaufen:

Heft als PDF kaufen

LinuxUser erscheint monatlich und kostet in der Nomedia-Ausgabe EUR 5,95 und mit DVD EUR 8,50. Weitere Informationen zum Heft finden Sie auf der LinuxUser-Homepage.

Im LinuxUser-Probeabo erhalten Sie drei Ausgaben für 3 Euro. Das Jahresabo (ab EUR 60,60) können Sie im Medialinx-Shop bestellen.

Tipp der Woche

Bilder vergleichen mit diffimg
Bilder vergleichen mit diffimg
Tim Schürmann, 01.04.2014 12:40, 1 Kommentare

Das kleine Werkzeug diffimg kann zwei (scheinbar) identische Bilder miteinander vergleichen und die Unterschiede optisch hervorheben. Damit lassen sich nicht nur Rätsel a la „Orignial und Fäls...

Aktuelle Fragen

programm suche
Hans-Joachim Köpke, 13.04.2014 10:43, 8 Antworten
suche noch programme die zu windows gibt, die auch unter linux laufen bzw sich ähneln sozusagen a...
Funknetz (Web-Stick)
Hans-Joachim Köpke, 04.04.2014 07:31, 2 Antworten
Bei Windows7 brauche ich den Stick nur ins USB-Fach schieben dann erkennt Windows7 Automatisch, a...
Ubuntu 13.10 überschreibt immer Windows 8 Bootmanager
Thomas Weiss, 15.03.2014 19:20, 8 Antworten
Hallo Leute, ich hoffe das ich richtig bin. Ich habe einen Dell Insipron 660 Ich möchte gerne Ub...
USB-PTP-Class Kamera wird nicht erkannt (Windows-only)
Wimpy *, 14.03.2014 13:04, 15 Antworten
ich habe meiner Frau eine Digitalkamera, AGFA Optima 103, gekauft und wir sind sehr zufrieden dam...
Treiber
Michael Kristahn, 12.03.2014 08:28, 5 Antworten
Habe mir ein Scanner gebraucht gekauft von Canon CanoScan LiDE 70 kein Treiber wie bekomme ich de...