Aufmacher Artikel

Nachgezeichnet

potrace wandelt Pixelbilder in Vektorgrafiken um

12.07.2007
Vektorgrafiken haben gegenüber Pixelbildern einen großen Vorteil: Sie sind frei skalierbar, ohne dass beim Vergrößern hässliche Treppenstufen und Riesenpixel entstehen. Doch was tun, wenn ein Bild nur im Pixelformat vorliegt? Das Tool "potrace" hilft.

Große Pixel zerstören jedes noch so schöne Bild – sie entstehen, wenn ein Bild nur in niedriger Auflösung vorliegt und mit einem Grafikprogramm hochskaliert werden. Grafikprofis versuchen daher, weitgehend auf den Einsatz von Pixelgrafiken zu verzichten: Stattdessen arbeiten sie mit Vektorgrafiken, die nicht aus Pixeln bestehen, sondern Beschreibungen der auf dem Bild sichtbaren Objekte enthalten, z. B. geometrische Figuren oder Schrift.

Vektorgrafiken haben gleich mehrere Vorteile:

  • Die einzelnen Elemente, aus denen sie bestehen, verschieben oder entfernen Sie bei Bedarf, und Texte bleiben auch nach dem Speichern und Wiederöffnen frei veränderbar.
  • Die ganze Grafik ist beliebig skalierbar: Wollen Sie das Bild in Postergröße ausdrucken, ist das kein Problem.

Arbeiten Sie stattdessen mit Pixelbildern, müssen Sie immer ein möglichst hoch auflösendes Original erstellen und dieses dann auf die benötigten Größen runter skalieren – stets in der Hoffnung, dass Sie nicht eines Tages eine noch höhere Auflösung benötigen.

Ausweg aus der Pixelfalle

Doch wenn Sie schon einen großen Bestand an Pixelgrafiken haben oder ein im Internet gefundenes, niedrig aufgelöstes Bild verwenden wollen, haben Sie noch eine Chance: Ein Vektorisierer durchsucht Pixelbilder nach Mustern und erstellt daraus eine Vektorgrafik. Dieser Prozess ist – abhängig von der Quelldatei und vom benutzten Tool – mehr oder weniger erfolgreich. Für Linux übernimmt das Programm potrace[1] diese Aufgabe. Sie installieren das Tool wie üblich von der Heft-DVD oder suchen bei Bedarf auf der Webseite nach einer aktuelleren Version.

Ein erstes Beispiel macht deutlich, was potrace leistet: Abbildung 1 zeigt einen Screenshot des Webbrowsers Opera, der die EasyLinux-Startseite anzeigt. Das rechte Bild enthält einen kleinen, hoch skalierten Ausschnitt dieses Screenshots: Deutlich erkennt man hier die Rasterung und die Treppenstufen.

Abbildung 1: In der Vergrößerung wird es deutlich: Pixelgrafiken sind nicht skalierbar.

Da potrace nur Dateien in den Formaten bmp, pnm, pbm, pgm und ppm akzeptiert, steht zunächst eine Konvertierung in eines dieser Bildformate an – dafür eignet sich convert[2]. In der einfachsten Form benötigt potrace nur einen Dateinamen als Argument und erzeugt dann automatisch eine Ausgabedatei im EPS-Format, aus bild.pnm wird also bild.eps. Über die Option -o ist es möglich, einen alternativen Namen anzugeben.

convert screenshot.png screenshot.pnm
potrace screenshot.pnm -o test1.eps

Das Resultat sehen Sie in Abbildung 2 links – oben die vollständige Grafik und unten eine Ausschnittsvergrößerung. Auf den ersten Blick wirkt das schon recht brauchbar, die Details zeigen aber, dass zum Beispiel die Buchstaben "f" und "t" stark verunstaltet sind.

Abbildung 2: Solche Vektorgrafiken erzeugt "potrace" – links ohne Optimierung, rechts mit vorheriger Skalierung durch "mkbitmap".

Optimierung

Um bessere Ergebnisse zu erzielen, nutzen Sie das Programm mkbitmap, das zum Lieferumfang des potrace-Pakets gehört: Es konvertiert das Ausgangsbild mit vielen Einstellungsmöglichkeiten vor dem potrace-Aufruf. Meist reicht es schon aus, das Bild zunächst ein wenig zu vergrößern: Das verbessert zwar nicht die Details (genau das ist ja das Problem mit den Pixeln), aber potrace kann mit dem höher aufgelösten Bild besser umgehen.

Im folgenden Beispiel vergrößert mkbitmap das Bild um den Faktor 2 und setzt gleichzeitig (mit -t 0.5) einen Grenzwert (0,5) für Grauwerte im Bild, die noch als schwarz gelten sollen:

mkbitmap -s 2 -t 0.5 screenshot.pnm -o test2.pbm
potrace test2.pbm -o test2.eps

Im Idealfall sind die Bilder, die Sie potrace übergeben, reine Schwarz-Weiß-Grafiken. Für das Konvertieren in dieses Format können Sie statt mkbitmap auch ein anderes Tool verwenden. Das Ergebnis dieser Optimierung sehen Sie in der rechten Hälfte von Abbildung 2 – schon in der Gesamtdarstellung wirken die Buchstaben ausgeglichener, und das Detailbild zeigt, dass die vorher problematischen Buchstaben "f" und "t" jetzt die richtige Form haben.

SVG-Output

EPS ist oft das Format der Wahl, wenn Sie eine Grafik in ein anderes Dokument einbauen wollen. Weitere Bearbeitungen sind im EPS-Format aber nur mit Spezialprogrammen möglich. potrace bietet darum noch andere Ausgabeformate, darunter auch svg und das xfig-eigene Format – die dafür nötigen Optionen sind -b svg und -b xfig. Wie die mit

potrace test2.pbm -b svg -o test2.svg

erzeugte SVG-Datei aussieht, zeigt Abbildung 3: Das ganze Bild ist nach dem Öffnen in Skencil zunächst ein gruppiertes Objekt. Lösen Sie die Gruppierung auf, können Sie mit den einzelnen Buchstaben arbeiten und diese frei verändern, beispielsweise verzerren oder drehen.

Abbildung 3: Nach dem Vektorisieren können Sie Bilder in einem Vektorgrafikprogramm weiterbearbeiten – in Skencil haben wir zwei Buchstaben gedreht und einen vergrößert ins Bild kopiert.

Im Vergleich dazu gelang es nicht, die mit potrace test2.pbm -b xfig -o test2.fig erzeugte xfig-Datei in diesem Programm ordentlich zu bearbeiten: Die einzelnen Punkte waren nicht "anfassbar", und es gab unübersichtlich viele davon.

Grauwerte

Meist liegen Grafiken nicht in einem reinen Schwarz-Weiß-Format, sondern bunt oder in Graustufen vor. Die schon eingeführte mkbitmap-Option -t legt fest, ab welchem Grauwert ein Pixel als schwarz gilt. Häufig lohnt es sich, mit diesem Parameter zu experimentieren: Abbildung 4 zeigt am Beispiel einer Zeichnung des Linux-Magazin-Cartoonisten Illiad drei unterschiedliche Ergebnisse. Am Original erkennt man gut die noch vorhandenen Graustufen und den Qualitätsverlust durch Hochskalieren.

Abbildung 4: Links oben das vergrößerte Originalbild, rechts oben das Ergebnis ohne Schwellwertkorrektur, unten eine schwärzere (links, "-t 0.5") und eine weniger schwarze (rechts, "-t 0.25") Version. (Quelle: "userfriendly.org", Cartoon vom 1.6.2007)

Fazit

Das Tool potrace macht das Unmögliche möglich: Pixelgrafiken sind nicht länger eine Sackgasse – durch Vektorisieren führt der Weg wieder hinaus. Über zahlreiche Optionen von potrace und dem Zusatztool mkbitmap können Sie die Ergebnisse noch optimieren, aber schon mit Standardeinstellungen sind die entstehenden Vektorgrafiken oft besser als das Original.

Infos

[1] Potrace: http://potrace.sourceforge.net/

[2] Artikel zu convert: Heike Jurzik, "Zauberhafte Bildbearbeitung", EasyLinux 06/2006, S. 89 f., http://www.easylinux.de/2006/06/089-guru-convert/

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 

Ähnliche Artikel

Kommentare