La verdad que yo te recomendaría trabajar con la paleta del Bitmap, mas que con todo el Bitmap, pero si eso es lo que querés, acá tenés un ejemplo:
Código:
Type
TRGBArray = array of TRGBTriple;
PRGBArray = ^TRGBArray;
function InColors( ABitmap : TBitmap; AColors : array of TRGBTriple ) : boolean;
var
xPix,
yPix : Integer;
P : PRGBArray;
begin
Result := True;
for yPix := 0 to ABitmap.Height -1 do
begin
P := ABitmap.ScanLine[yPix];
for xPix := 0 to ABitmap.Width -1 do
if AreIn( P^[xPix], AColors ) Then
begin
Result := False;
Exit;
end;
end;
end;
La función AreIn, que no la vas a encontrar en Delphi, lo que hace es fijarse si ese valor esta un Array de Colores, si solo es para blanco y negro podes modificar esa condición.
Implementación:
Código:
var
rgbBlanco,
rgbNegro : TRGBTriple;
begin
with rgbBlanco do
begin
rgbtBlue := 255;
rgbtGreen := 255;
rgbtRed := 255;
end;
with rgbNegro do
begin
rgbtBlue := 0;
rgbtGreen := 0;
rgbtRed := 0;
end;
if InColors( MiBitmap, [rgbBlanco, rgbNegro] ) Then
...