Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type
- PRGB32Array = ^TRGB32Array;
- TRGB32Array = packed array[0..MaxInt div SizeOf(TRGBQuad)-1] of TRGBQuad;
- procedure MakeGrey(Bitmap: TBitmap);
- var
- w, h: integer;
- y: Integer;
- sl: PRGB32Array;
- x: Integer;
- grey: byte;
- begin
- Bitmap.PixelFormat := pf32bit;
- w := Bitmap.Width;
- h := Bitmap.Height;
- for y := 0 to h - 1 do
- begin
- sl := Bitmap.ScanLine[y];
- for x := 0 to w - 1 do
- with sl[x] do
- begin
- grey := (rgbBlue + rgbGreen + rgbRed) div 3;
- rgbBlue := grey;
- rgbGreen := grey;
- rgbRed := grey;
- end;
- end;
- end;
- // Sample usage:
- procedure TForm4.Button1Click(Sender: TObject);
- var
- bm: TBitmap;
- begin
- bm := TBitmap.Create;
- try
- bm.LoadFromFile('C:\gambar\foto.bmp');
- MakeGrey(bm);
- Canvas.Draw(0, 0, bm);
- finally
- bm.Free;
- end;
- end;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement