[Variante] PNG in SVG konvertieren

Teilen:

Im Blogartikel PNG in SVG konvertieren beschreibe ich wie SVG-Grafiken, die oftmals auf Webseiten eingesetzt sind, vom Standard-Ausgangsformat PNG ins Zielformat SVG transformiert werden.

Dies wurde im oben genannten Artikel mit einem Zwischenschritt ins PNM-Format durchgeführt und danach ins eigentliche gewünschte Format SVG abgeschlossen.

$ convert penguin.png penguin.pnm && potrace penguin.pnm -s -o penguin.svg

Leider führt dies bei vielen Bildern mit Transparenz nicht zu den erwünschten Ergebnissen, z.B. komplett schwarze Grafiken. Die Linux-Komandozeile hat aber auch hier eine praxistaugliche Lösung. Mit dem PPM (Portable Pixmap /Portable Anymap) Format gelingt eine erfolgreiche Konvertierung. Beim convert Kommando muss noch die Option -flatten angegeben werden damit das gewünschte Ergebnis entsteht.

$ convert -flatten penguin.png penguin.ppm && potrace -s penguin.ppm -o penguin.svg

Hier das Listung des Ausgangsformat PNG, der Zwischenschritt mit dem PPM-File, sowie das fertige SVG Zielformat nach Ausführung des Kommandos.

$ ls -ld penguin.*
-rw-rw---- 1 michael michael  23932 Dez 23 11:04 penguin.png
-rw-rw---- 1 michael michael 786447 Dez 23 11:04 penguin.ppm
-rw-rw---- 1 michael michael   4929 Dez 23 11:04 penguin.svg

Das die Formate wirklich das sind, was die Dateinamen vorgeben, kann man mit dem Kommando file überprüfen.

$ file penguin*
penguin.png: PNG image data, 512 x 512, 8-bit/color RGBA, non-interlaced
penguin.ppm: Netpbm image data, size = 512 x 512, rawbits, pixmap
penguin.svg: SVG Scalable Vector Graphics image

Das PPM-File kann man bedenkenlos löschen, da es nicht mehr gebraucht wird.

$ rm penguin.ppm


Weiterführende Infos