Home / LinuxUser / 2008 / 04 / Licht und Schatten

Newsletter abonnieren

Lies uns auf...

Folge LinuxCommunity auf Twitter

Top-Beiträge

„Klickbunt auf dem Server? Warum nicht, wenn's hilft!"
(179 Punkte bei 5 Stimmen)
Bezahlstandard
(121 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: 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: Erst kommt die Maske für das Logo (links), dann folgen Farbe und Schrift (rechts).

Einem Freund empfehlen    Druckansicht Bookmark and Share
Kommentare

Hits
Wertung: 65 Punkte (6 Stimmen)

Schlecht Gut

Infos zum Autor

Tim Schürmann

Tim Schürmann

Tim Schürmann ist Diplom-Informatiker und derzeit als freier Autor unterwegs. Mehr Informationen finden Sie auf seiner Homepage unter http://www.tim-schuermann.de.


Infos zur Publikation

Infos zur Publikation

title_2013_06

Aktuelle Ausgabe kaufen:

Heft bestellen 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

Terminator
Viele Terminals im Griff mit Terminator
Tim Schürmann, 07.05.2013 10:57, 1 Kommentare

Wer morgens nach dem Einschalten des Rechners erst einmal mehrere Terminals öffnet und sich diese mühevoll auf dem Bildschirm drapiert, der sollte einen Blick auf Terminator werfen. Das kleine...

Aktuelle Fragen

Kontakt via QR code hinzufügen
Herman Sproesser, 17.05.2013 17:46, 3 Antworten
Hi hab in der aktuellen ausgabe 06.2013 den artikel über QR Codes gelesen. Ich hab nartürlich...
Dateimanager Dolphin, wo legt er die Datei Kommentare ab?
Uwe Heine, 16.05.2013 15:19, 1 Antworten
Suse Linux 12.1 - KDE 4.7.2 / Dolphin 1.7. Ich habe bei vielen Dateien über Dolphin Kommentare...
wie baut man Kernel Module so, dass sie mit jedem Kernel laden?
GoaSkin , 22.04.2013 10:22, 1 Antworten
Hallo, baut man anhand eines Kernel-Sources Module, nutzt Linux im Normalfall eine strikte V...
Problem beim Installieren von SuSe 12.3
Georg Prokert, 14.04.2013 00:04, 16 Antworten
Hallo, auf meinem neuem Laptop (Acer Aspire V3-771, Intel Core i5-3230 M, Intel HD Graphics 4...
lvm wieder loswerden
Peter Dibbern, 11.04.2013 16:28, 4 Antworten
Ich habe sämtliche alten Kisten ausgeschlachtet und aus der Teilen einen Rechner zusammengeschrau...