Hallo,
heute muss ich etwas weiter ausholen um zu beschreiben welches Problem ich habe.
Ich habe eine (sehr alte) Maschine mit der man Vektorgrafiken im HPGL Format und auch Bitmaps (Nur Schwarz-Weiß) in Metall fräsen(gravieren) kann geerbt.
Ich habe mir eine Steuerung mit einem AVR gebaut. Diese Steuerung erwartet immer (Über USB) eine XY Position und ob der Fräskopf bei der Bewegung unten oder oben sein soll. Dazu habe ich eine Delphi Programm geschrieben, dass diese Daten aus einer *.plt Datei extrahiert und an die Steuerung schickt. Das funktioniert jetzt einwandfrei.
Nun wollte ich (wie in der defekten Original Steuerung) ein Schwarz-Weiß Bitmap fräsen. Aber da komme ich nicht weiter.
In der Originalsteuerung funktionierte das so: Je nach gewähltem Fräskopf wurde die X-Achse in festen Schrittgrößen vorwärts bewegt. Auf der Y-Achse wurde der Fräskopf auf das Metall gesenkt, solange die Bitmap an der entsprechenden Position schwarz war.
Mein erster Gedanke war einfach an den entsprechenden XY Punkten aus der Bitmap die Farben auszulesen.
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| for x:=0 to bild.Width -1 do begin for y:=0 to bild.Height -1 do begin color :=bild.Canvas.Pixels[x,y]; List.Add('X = '+inttostr(x)+ ' Y = '+inttostr(y)+' Color = '+inttostr(color)); end; end; |
Das klappt aber nicht gescheit. Selbst bei einem kleinen Bild sind das zu viele Bildpunkte. Wenn ich nur jede 4 oder 5 Zeile nehme verliere ich Bildinformationen.
Ich finde einfach keinen praktikablen Ansatz. Hat jemand eine Idee wie ich sowas umsetzen könnte?
Gruß Frank