Home » Tipps & Tricks » Grafik » Grafikbearbeitung » Bitmap in schwarz/weiß umwandeln

Bitmap in schwarz/weiß umwandeln

Um beispielsweise ein Bild auf einem graphischen LCD Display anzeigen zu können, müssen die Pixel entweder schwarz oder weiß sein, damit das Bild vom Display angezeigt werden kann. Folgende Funktion wandelt ein Bitmap dem entsprechend um:

type
  TRGBTripleArray = array[0..32768] of TRGBTriple;

procedure BlackWhiteImage(const Bitmap: TBitmap; const Toleranz: Integer);
var
  i,j: Integer;
  Reihe: ^TRGBTriple;
begin
  for i:= 0 to Bitmap.Height-1 do
  begin
    Reihe:= Bitmap.Scanline[i];
    for j:= 0 to Bitmap.Width-1 do
    begin
      if (Reihe^.rgbtred + Reihe^.rgbtBlue + Reihe^.rgbtgreen)div 3> Toleranz then
      begin
        Reihe^.rgbtred   := 255;
        Reihe^.rgbtBlue  := 255;
        Reihe^.rgbtgreen := 255;
      end
      else
      begin
        Reihe^.rgbtred   := 0;
        Reihe^.rgbtBlue  := 0;
        Reihe^.rgbtgreen := 0;
      end;
      inc(Reihe);
    end;
  end;
  bitmap.Assign(Bitmap);
end;

Über den Parameter ‚Toleranz‘ kann die Routine justiert werden.