Einzelnen Beitrag anzeigen

alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#16

Re: Code Optimierung: floodfill innerhalb 1/10 sek

  Alt 16. Jun 2008, 17:27
Du musst die OH genau lesen: ScanLine ist einfach nur ein ^TByteArray in eine Zeile des Bildes. Was da genau steht, ist vom Bildformat abhängig. Wenn Du ein 24bit Bild hast, sind das lauter TRGBTriple-Werte, also kannst Du einfach ein entsprechendes Array deklarieren und direkt jedes Pixel ansprechen:
Delphi-Quellcode:
Type
  TRGBLine = Array [0..0] Of TRGBTriple; // Achtung! Mit {$RANGECHECKS OFF} kompilieren
  PRGBLine = ^TRGBLine;

...
Var
  pPixelLine : PRGBLine;

Begin
  pPixelLine := PRGBLine (MyBitmap.ScanLine[x]);
// pPixelLine^[25] ist nun das 26.Pixel von Links (wenn MyBitmap eine 24bit Bitmap ist)
...
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat