Ver Mensaje Individual
  #2  
Antiguo 16-05-2003
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.964
Reputación: 29
delphi.com.ar Va camino a la fama
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
  ...
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita