PixelValue=face->Canvas->Pixels[row][column];
B=(PixelValue&0x00ff0000)>>16; //shift 16 bits
G=(PixelValue&0x0000ff00)>>8; //shift 8 bits
R=(PixelValue&0x000000ff);
R = G = B = 0.299*R+0.587*G+0.114*B;
face->Canvas->Pixels[row][column]=TColor(RGB(R,G,B));
B=(PixelValue&0x00ff0000)>>16; //shift 16 bits
G=(PixelValue&0x0000ff00)>>8; //shift 8 bits
R=(PixelValue&0x000000ff);
R = G = B = 0.299*R+0.587*G+0.114*B;
face->Canvas->Pixels[row][column]=TColor(RGB(R,G,B));
R,G,B:integer;
PixelValue:TColor;
begin
PixelValue:=face.Canvas.Pixels[row,column];
B:=(PixelValue and $00FF0000) shr 16;
G:=(PixelValue and $0000FF00) shr 8;
R:=(PixelValue and $000000FF);
B:=round(0.299*R+0.587*G+0.114*B);
G:=B;
R:=G;
face.Canvas.Pixels[row,column]:=TColor(RGB(R,G,B));
function RGB(r, g, b: Byte): COLORREF;
begin
Result := (r or (g shl 8) or (b shl 16));
end;
function RGB(r, g, b: Byte): COLORREF;
begin
Result := (r or (g shl 8) or (b shl 16));
end;