Mega Code Archive

 
Categories / Delphi / Graphic
 

How to apply a negative filter to a bitmap

Title: How to apply a negative filter to a bitmap var b: tbitmap; s: string; x, y: Integer; p: pbytearray; image1: TImage; procedure LoadBitmap; begin if opendialog1.Execute then begin b := tbitmap; s := opendialog1.FileName; b.loadfromfile(s); image1.Canvas.draw(0,0,b); end; end; procedure ApplyNegativeFilter; begin image1.Height := b.Height; image1.Width := b.Width; for y := 0 to b.Height - 1 do begin p := b.scanline(y); for x := 0 to b.Width - 1 do begin (([image1.Canvas.pixels[x, y] := rgb(255 - (p[x * 3) - 4]), 255 - (p[x * 3) - 2]), 255 - (p[x * 3) - 3])); end; end; end;