Entw.: Vektorisierung von Pixelgrafiken (1)

Problematik

Bei der Portierung von technischen Programmen hin zu WebApp's bzw. App's sind jede Menge Pixelgrafiken in Vektorgrafiken zu konvertieren. Dabei soll je nach Erfordernissen wahlweise eine Konvertierung nach SVG (Scalable Vector Graphic) oder direkt in Programmcode (canvas-basierendes JavaScript-Code) möglich sein. Je mehr Vektoren eine Grafik besitzt, um so eher ist aus Performance-Gründen eine Konvertierung nach JS-Programmcode notwendig.

Ein Test mit dem iPad ergab, dass bei einem SVG-Werksplan mit mehr als 500000 Vektoren ein vollständiger Bildaufbau in ca. 4 Sekunden erfolgte, während der Bildaufbau über Programmcode in weniger als 0.2 Sekunden geschah. Die zusätzlichen Grafiken zur Darstellung von aktuellen Warenbewegungen im Werk erfolgte bei beiden Lösungen in weniger als 0.3 Sekunden, wobei die Bewegungsdaten über eine Ajax-Schnittstelle aus einer Datenbank gelesen wurden.

Randbedingungen

Die Vektorgrafiken werden für Client-WebApp's bzw -App's benötigt, die in HTML5/CSS3- und JavaScript-Code realisiert sind. Die konvertierten Vektorgrafiken müssen im späteren Betrieb dynamische Bestandteile verarbeiten können. Es werden zusätzlich Grafikbestandteile hinzugefügt und zum späteren Zeitpunkt wieder gelöscht oder es werden bestehende Grafikinhalte verändert.

Vorhandene Lösungen zur Vektorisierung

Freeware-Lösungen sind
- potrace   C-Sourcen; nur Outerline-Unterstützung, d.h. es werden die Umrisse ermittelt.
- autotrace   C-Sourcen; ermittelt Centerline. Etwas veraltet.
- Inkscape   integriert das potrace-Programm

Sehr gute kommerzielle Lösungen sind
- WinTopo Pro und
- Ras2Vec

Alle vorhandenen Implementierungen können für die Umsetzung von Pixelgrafiken verwendet werden. Es sind aber immer mehrere Arbeitsschritte mit z.T. unterschiedlichen Programmen notwendig.

Vorgesehene Lösung

Die eigene Lösung soll ein schnelles Umsetzen vieler Pixelgrafiken mit interaktiven Einflussmöglichkeiten ermöglichen. Es existieren einige amerikanische Patente bezüglich von Algorithmen zur Vektorisierung von Pixelgrafiken. Die eigene Implementierung bedarf dieser patentierten Algorithmen nicht.


Der nachfolgende Artikel behandelt die erste Programmversion 0.1. Mit dieser Version lassen sich Pixelgrafiken überarbeiten. Je besser die Konturen der Pixelgrafik hervortreten, umso besser das Vektorisierungsergebnis.