Ränder von Vektorgraphiken ermitteln

Ramon

Mitglied
Nabend Kollegen ;),

ich stehe vor einem mittelschweren Problem.
Ich benötige ein Script, welches die Ränder von Vektorgrapfiken (oder auch Pixelgraphiken) ermittelt und anhand diesen Daten eine Art Koordinatensystem mit Punkten einzeichnet.

Meint ihr, dass dies möglich wäre? Leider fehlt mir dazu absolut der Ansatz - wenn also jemand einen Ansatz hätte oder mir zumindest sagen würde, dass es nicht so leicht bzw. überhaupt nicht möglich ist, wäre ich schon "froh".

MfG
Ramon
 
Okay, stimmt. War blöd ausgedrückt.
Es geht natürlich nicht um Ränder (diese nur bei PixelGrafiken...) sondern um die Vektoren ansich - also um die Umrisse der Grafik.

Beispiel: Ich habe einen x-beliebigen Schriftzug als Pixel- bzw. Vektorgrafik. Der Schriftzug ist Monochrom ohne Verzierungen. Ich möchte nun mit einem Script genau diese Umrisse bestimmen und anhand dieser eine Art Gitternetz in diesen Schriftzug zeichnen. Dieser Schriftzug ist jedoch nicht einfach nur eckig, sondern kann auch abstrakt sein - auch muss es sich dabei nicht unbedingt um einen Schriftzug handeln.
 
> Schriftzug als Pixel- bzw. Vektorgrafik
Da es hier Unterschiede gibt, ist mir die Frage etwas unklar.

Was soll denn als Vorlage dienen ?
 
Also als OCR würde ich das nicht bezeichnen, da es sich, wie gesagt, nicht zwingend um Schrift handeln wird. Auch ist es nahezu egal, ob eine Pixelgrafik (welche aus einer Vektorgrafik gemacht wurde und somit ebenfalls nur als Silhouette vorhanden ist) oder Vektorgrafik verwendet wird.
Das Script soll die Ränder eine Silhouette erkennen und anhand dieser eine Art Gitternetz erstellen.

vorher: http://www.flasher24.de/cryprg/bsp_ogitter.jpg
nachher: http://www.flasher24.de/cryprg/bsp_gitter.jpg
 
Zuletzt bearbeitet:
Bei Pixelgrafiken gibt es sicherlich eine Lösung, aber bei Vektorgrafiken fällt mir rein gar nix ein.

EDIT: hab eben gelesen egal ob Pixel oder Vektor. Ich würd versuchen jedes Pixel einzel, und vor allem deren anliegende Pixel, zu analysieren. Wenn die Farbe wechselt zwischen zwei "benachtbarten" Pixeln würd ich diesen speichern und später hast du dann schon mal die Silhouette. Vielleicht gibt es dafür schon Funktionen oder Klassen?
 
Zuletzt bearbeitet:
Ja hatte es später auch gelesen mit, mein Edit kam nur zu spät.

Ich würd versuchen jedes Pixel einzel, und vor allem deren anliegende Pixel, zu analysieren. Wenn die Farbe wechselt zwischen zwei "benachtbarten" Pixeln würd ich diesen speichern und später hast du dann schon mal die Silhouette. Vielleicht gibt es dafür schon Funktionen oder Klassen?

Mit analysieren meine ich natürlich die Farben miteinander vergleichen. Wenn du nur schwarz/weiß hast dürfte es dort keine Probleme geben denke ich.

Wie schon gesagt gibt es sicherlich auch eine andere Lösung, die würde mir auf jedenfall so auf die schnelle einfallen. Wie groß sollen denn die Bilder sein?
 
Ich glaube, du verstehst leider nicht ganz genau wie ich es meine ;)
Die Bilder liegen bereits als Silhouette vor. Es geht mir darum, dass das Script ein Gitternetz(wird später dann durch Punkte bzw. sehr kleine Grafiken ersetzt) in diese Silhouette zeichnen soll. Leider fehlt mir der Ansatz, wie ich an die Ränder der Grafik komme (daher dachte ich an Vektorgrafiken, da dort die "Ränder" ja schon mit Koordinaten gegeben sind -> siehe SVG, daraus kann ich mir jedoch kein Schema ableiten).
Klaro könnte man jedes Pixel einzeln abfragen und schauen, ob dies schwarz oder weiß ist, jedoch wird es bei größeren Bildern (und diese Bilder haben in real Ausmaße von 5cm² oder auch 1qm²) sehr lange dauern und zusätzlich den Server schon sehr stark fordern.
Leider ist PHP die einzige webbasierte Programmiersprache, die ich beherrsche, somit fallen andere Möglichkeiten weg, da ich es schon gern webbasiert hätte und vorallem (auch zur Erweiterung des Wissenshorizonts) schon gern selfmade programmieren würde.

EDIT:

Habe soeben ein sehr detailliertes Tutorial bzgl. SVG Dateien gefunden und verstehe nun das Schema. Leider sind in den Dateien natürlich größtenteils Bezierkurven angegeben und diese mit PHP und der Image Funktion darstellen, stelle ich mir sehr schwer vor. Wäre vielleicht mathematisch bestimmbar, wie der Verlauf der Kurve ist, jedoch reicht dazu mein Mathewissen nicht aus. ;)
Werde mir das Tutorial jedoch später mal genauer durchlesen. Vielleicht ist es auch möglich mit SVG Dateien zu arbeiten und nun kleinere Berechnungen von PHP durchführen zu lassen.
 
Zuletzt bearbeitet:
Zurück