Home / LinuxUser / 2008 / 04 / Licht und Schatten

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

Debian leicht gemacht
(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.

Licht und Schatten

Fortgeschrittene Bildbearbeitung auf der Konsole

Malen nach Zahlen

Bislang mussten Sie die Masken in einem Malprogramm erstellen. Doch auch dies übernimmt Convert. Dazu füttern Sie den Parameter -draw mit Informationen darüber, was er zeichnen soll – etwa ein Rechteck:

$ convert -size 150x100 xc:lightgreen -fill white -stroke black -draw "rectangle 10,20 130,80" rechteck.tiff

Der Parameter xc:lightgreen sorgt dabei für einen hellgrünen Hintergrund, auf den Convert ein weißes Rechteck (-fill white) mit schwarzem Rand (-stroke black) malt. Der Hintergrundparameter dient zugleich als Ersatz für eine Eingabedatei – andernfalls meldet Convert missing an image filename. Die Zahlen hinter rectangle geben die linke obere und untere rechte Ecke des Rechtecks an.

Der Option -draw dürfen Sie sogar mehrere Zeichenanweisungen mitgeben, die Sie am Stück zwischen die Anführungszeichen klemmen:

$ convert -size 150x100 xc:grey -draw "fill red circle 45,50 35,80 fill blue circle 85,50 95,80" kreise.tiff

Dies erzeugt die beiden sich überlagernden Kreise aus Abbildung 3. Deren Koordinaten lassen sich nicht ohne Mühe bestimmen: Die ersten beiden Werte geben die Lage des Kreismittelpunkts an, die zwei danach einen Punkt auf dem Kreisrand. Da die Farben hier für jeden Kreis unterschiedlich ausfallen, positionieren Sie diese innerhalb der Anführungszeichen.

Abbildung 3

Abbildung 3: Neben Kreisen und Rechtecken kennt Convert noch viele weitere Zeichenbefehle, wie beispielsweise Linien, Punkte und sogar Text.

Die obigen Zeichenanweisungen in eine Kommandozeile zu quetschen artet spätestens bei größeren Gemälden in einen unübersichtlichen Wust von Parametern aus. Deshalb dürfen Sie alles, was hinter -draw in den Anführungszeichen folgt, in eine externe Textdatei auslagern, die Sie etwa kreise.mvg nennen:

$ convert -size 150x100 xc:grey -draw @kreise.mvg kreise.tiff

Auf diese Weise malen Sie recht schnell pixelgenaue Masken. Sie müssen lediglich darauf achten, als Zeichenfarbe Weiß und als Hintergrundfarbe Schwarz zu verwenden.

Logisch

Bislang blieben die Bilder recht flach. Im Zusammspiel mit Masken verlängern Sie die Figuren in dritte Dimension, wie das folgende kleines Logo beweist. Zeichnen Sie zunächst dessen Grundform und verwenden Sie dazu wieder nur schwarze und weiße Farbe: Die Grafik dient zugleich als Maske ihrer selbst. Das Beispiel in Abbildung 4 (links) erzeugt der Befehl aus Zeile 1 in Listing 1. Der Schalter +matte sorgt dafür, dass Convert jegliche Transparenz ignoriert.

In Zeile 2 kommen als nächstes rote Farbe und roter Text ins Spiel. Zunächst dupliziert (+clone) die gerade angelegte Maske und koloriert (-colorize) die Kopie mit roter Farbe (-fill red). Anschließend greift der Befehl wieder zur Maske und stanzt damit das eingefärbte Logo aus. Zum Schluss kommt in die Mitte noch eine Beschriftung (Parameter -annotate). 34 Punkt groß und eine weiß gefüllt, hebt sie sich durch einen schwarzen Rand ab. Die Ziffern hinter -annotate verschieben die Schrift ein wenig aus dem Zentrum, damit sie brav im roten Rechteck bleibt.

Listing 1
$ convert -size 150x100 xc:black -draw "fill white roundrectangle 20,20 125,70 10,10 fill black circle 120,65 135,80 fill white circle 120,65 130,75" -gaussian 1x1 +matte logo_maske.png
$ convert logo_maske.png +clone +matte -compose CopyOpacity -composite -fill red  -colorize 100% -pointsize 34 -fill white -stroke black -gravity Center  -annotate 0x0-10-5 "Logo" logo.png
Abbildung 4

Abbildung 4: Erst kommt die Maske für das Logo (links), dann folgen Farbe und Schrift (rechts).

Tip a friend    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 65 Punkte (6 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...