![]() |
|
||||||||||||||||||||
|
|||||||||||||||||||||
|
|||||||||||||||||||||
Hans-Georg Eßer
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:
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.
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.
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.
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.
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.
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.
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.
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. (hge)
| 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/ |
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.
Druckerfreundliche Version |
Feedback zu dieser Seite |
Datenschutz |
© 2012 Linux New Media AG |
Last modified: 2008-11-05 17:26
[Linux-Magazin]
[LinuxUser]
[Linux-Community]
[Admin-Magazin]
[Ubuntu User]
[Smart Developer]
[Linux Events]
[Linux Magazine]
[Ubuntu User]
[Admin Magazine]
[Smart Developer]
[Linux Magazine Poland]
[Linux Community Poland]
[Linux Magazine Brasil]
[Linux Magazine Spain]
[Linux Technical Review]