// description of your code here
Procedure GrayScale(var Bitmap:TBitmap);
var
Row:^TRGBTriple; // wskaźnik do rekordu reprezentującego składowe RGB Pixela
H,V,Index:Integer;
begin
Bitmap.PixelFormat:=pf24bit;
for V:=0 to Bitmap.Height-1 do
begin
Row:=Bitmap.ScanLine[V];
for H:=0 to Bitmap.Width -1 do
begin
Index := ((Row.rgbtRed * 77 + //77 to stała dla czerwieni
Row.rgbtGreen* 150 + //150 stała dla zielonego
Row.rgbtBlue * 29) shr 8); //29 stała dla niebieskiego
Row.rgbtBlue:=Index;
Row.rgbtGreen:=Index;
Row.rgbtRed:=Index;
inc(Row); { Nie wolno przypisywać X:=0 lub 1,2 bo to Wskaźnk!!!
poruszamy się inc() lub dec()}
end;
end;
end;