Thema: Delphi About B&W film filter

Einzelnen Beitrag anzeigen

freeway

Registriert seit: 11. Jul 2009
57 Beiträge
 
Delphi XE Professional
 
#2

AW: About B&W film filter

  Alt 3. Mai 2011, 19:31
this code should help you

Delphi-Quellcode:
type TRGBArray = array[0..10000] of TRGBTriple;
      PRGBArray = ^TRGBArray;

var R,G,B : integer; //range 0 to 100
    x,y : integer;
    d1,d2,d3 : double;
    grey : integer;
    Row : PRGBArray;

begin
  d1 := R / 100; //calc percent
  d2 := G / 100;
  d3 := B / 100;

  for y := 0 to bmp1.Height - 1 do
    begin
      row := BMP1.scanline[y];
      for x := 0 to BMP1.Width - 1 do
        with row[x] do
          begin
            grey := round((d1 * rgbtRed) + (d2 * rgbtGreen) + (d3 * rgbtBlue)); //calculate
            if grey > 255 then grey := 255; //check range
            rgbtRed := grey; //set values
            rgbtGreen := grey;
            rgbtBlue := grey;
          end;
    end;
end;
  Mit Zitat antworten Zitat