Thema: Delphi Scanline vs. Pixels

Einzelnen Beitrag anzeigen

Muetze1
(Gast)

n/a Beiträge
 
#5

Re: Scanline vs. Pixels

  Alt 1. Feb 2008, 20:23
1. Wenn dein Bitmap eine Weite X hat, dann hast du PixelIndizies von 0 bis Width-1. In deinen beiden Codes gehen alle Schleifen einen zu weit.
2. Da dir der 1. Punkt noch nicht selber aufgefallen ist, hast du wohl keine Bereichsprüfung an. Ich empfehle dir dringend während der Entwicklungsphase die Bereichsprüfung sowie die Überlaufprüfung in den Projektoptionen->Compiler einzuschalten und das Projekt komplett neu zu erstellen.
3. Dein Pixel Struktur "Pix" kannst du mit TRGBTriple bzw. als Zeiger mit PRGBTriple ersetzen. Damit hast du dann auch gleich die richtig benannten Farbanteile.
4. Zu der Frage in deinem letzten Code: Ja, du musst natürlich den Zeiger auf den nächsten Pixel verschieben, also innerhalb der Schleife nach dem Zugriff noch ein Inc(p); einfügen.
5. Du greifst auf die Pixeldaten zu, als wenn es im pf24bit Format vorliegt. Dies wird aber durch dein Code überhaupt nicht sicher gestellt und nach dem anlegen eines Bitmaps ist dies sogar ein DDB (device-dependent bitmap) und somit dürftest du die ScanLine[] Eigenschaft gar nicht nutzen. Von daher: setze vorher die PixelFormat Eigenschaft explizit auf pf24bit.
  Mit Zitat antworten Zitat