Einzelnen Beitrag anzeigen

ToXiC

Registriert seit: 28. Okt 2007
52 Beiträge
 
Delphi 2005 Personal
 
#1

mit scanline bitmap auf farben scannen

  Alt 2. Feb 2009, 15:09
hallo zusammen
ich habe ein bitmap, welches ich auf die farbe schwarz scannen will
ist es komplett schwarz return true
sonst false
so weit so gut
mir wurde scanline empfolen, da dieses relativ schnell sein soll
ich habe bereits einen guten ansatz welcher bei 15 der 16 getesteten bitmaps den richtigen wert zurückggibt
nun frage ich mich natürlich wo der fehler liegt
ich hatte kein glück bei der suche, genau wie alle anderen, die ich zu dem problem befragt hab
hier ist der ansatz:

Delphi-Quellcode:
function NotBlack(bmp: TBitmap): Boolean;
type
  pRGBTripleArray = ^TRGBTripleArray;
  TRGBTripleArray = Array[0..4095] Of TRGBTriple;

var
  x,y: Integer;
  Row: pRGBTripleArray;
begin
Result := False;
For y := 0 To bmp.Height -1 Do
  Begin
  Row := bmp.Scanline[y];
  For x := 0 To bmp.Width -1 Do
    Begin
    If (Row[x].rgbtRed <> 0) Or (Row[x].rgbtGreen <> 0) Or (Row[x].rgbtBlue <> 0) Then
      Begin
      Result := True;
      Exit;
      End;
    End;
  End;
end;
irgentwelche vorschläge?

achja hier is das bild noch angelegt welches den falschen wert zurückgibt

danke
Angehängte Grafiken
Dateityp: bmp blaaa1-4_219.bmp (62,6 KB, 31x aufgerufen)
Chris
  Mit Zitat antworten Zitat