Einzelnen Beitrag anzeigen

Benutzerbild von turboPASCAL
turboPASCAL

Registriert seit: 8. Mai 2005
Ort: Sondershausen
4.274 Beiträge
 
Delphi 6 Personal
 
#11

Re: Farbige bitmap schwarz weiß machen

  Alt 17. Mai 2007, 15:43
Zitat:
und setzt die Farbe auf (R+G+B)/3
Dann hat man aber das Farbbild in ein Graustufenbild umgewandelt und nicht in ein S/W-Bild.

Delphi-Quellcode:
procedure ConvertTo1BitBitmap(Bitmap: TBitmap);
const
  Blau = 1;
  Gruen = 2;
  Rot = 3;
type
  PixArray = array[Blau..Rot] of Byte;
var
  h, w, Wert, i: integer;
  p: ^PixArray;
begin
  Bitmap.PixelFormat := pf24bit; //Temporär für scanline
  for h := 0 to Bitmap.Height - 1 do
  begin
    p := Bitmap.ScanLine[h];
    for w := 0 to Bitmap.Width - 1 do
    begin
      Wert := (p^[Blau] + p^[Gruen] + p^[Rot]) div 3;
      if Wert <= 85 then
        for i := Blau to Rot do p^[i] := 0
      else
        if Wert <= 170 then
        begin
          if (h mod 2) = (w mod 2) then
            for i := Blau to Rot do p^[i] := 0
          else
            for i := Blau to Rot do p^[i] := 255;
        end else
          for i := Blau to Rot do p^[i] := 255;
      inc(p);
    end;
  end;

  Bitmap.Monochrome := True;
end;
Diese Procedure ist hier irgend wo in der DP zu finden.
Matti
Meine Software-Projekte - Homepage - Grüße vom Rüsselmops -Mops Mopser
  Mit Zitat antworten Zitat