Данная функция на Delphi преобразовывает цветное изображение в черно-белое(оттенки серого):
function CreateGrayBmp (Source: TBitmap): TBitmap;
var
Table: array[Byte] of TRGBQuad; I: Integer;
begin
Result := TBitmap.Create;
with Result do
begin PixelFormat := pf8Bit; Width := Source.Width; Height := Source.Height;
for I := Low(Table) to High(Table) do
with Table[I] do
begin rgbRed := I; rgbGreen := I; rgbBlue := I; rgbReserved := 0;
end;
if (SetDIBColorTable(Canvas.Handle, Low(Table), High(Table), Table) = 0) then RaiseLastWin32Error; Canvas.Draw(0, 0, Source);
end;
end;