使用GetGValue和GetBValue及其相关函数,在Win32sdk帮助中有!
赋一小例子:(如何把颜色值转换为灰度值)
逐个像素转换。
function RgbToGray(Source: TColor) : TColor; 
var Target: Byte; 
begin
  Target := Round((0.30 * GetRValue(Source)) + 
(0.59 * GetGValue(Source)) + 
(0.11 * GetBValue(Source)));
  Result := RGB(Target, Target, Target); 
end;