Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.017 Beiträge
 
Delphi 2009 Professional
 
#6

AW: Canvas pixelkoordinaten parallel in Array zeichnen

  Alt 9. Apr 2020, 21:29
Ich bin mir nicht sicher, was du meinst. Willst du die Pixel eines Bildes in ein Array schreiben? Das ergibt wenig Sinn. Oder willst du die Eckpunkte eines Vielecks in einem Gerätekontext in ein Array laden?

Letztes geht recht einfach, indem du BeginPath(DeineCanvas.Handle) aufrufst, bevor das Zeichnen beginnt.
Nachdem gezeichnet wurde, kannst du so die Windows.tagPOINT s deines Gerätekontexts abfragen:
Delphi-Quellcode:
type
  TPoints = packed array of tagPOINT;
var
  Points: TPoints;
  Types: TBytes;
  Count: Integer;
begin
  Count := GetPath(DeineCanvas.Handle, Points[0], Types[0], 0); // Länge 0 vorgeben = zukünftige Länge abfragen
  SetLength(Points, Count);
  SetLength(Types, Count);
  GetPath(DeineCanvas.Handle, Points[0], Types[0], Count);
  // TuWas
  EndPath(DeineCanvas.Handle);
end;
Types kannst du ignorieren, wenn du keine Bézierkurven zeichnest.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat