Формат - bmp, хотя можно на примере jpeg, gif. Нужно преобразовать цветную картинку в черно-белую (не оттенки серого). P.S.: Monochrome = true и PixelFormat = pf1bit не подходят.
самый преметивный сопсоб: простым сравнение средней яркости. Тупой способ, но более менее норм выглядит и простой. Вот не оптимизированный вариант. Code: procedure TForm1.Button1Click(Sender: TObject); var x, y : integer; r, g, b : byte; c : dword; begin Image1.Picture.LoadFromFile('d:\1.bmp'); for y := 0 to Image1.Height-1 do begin for x := 0 to Image1.Width-1 do begin c := Image1.Canvas.Pixels[x,y]; r := GetRValue(c); g := GetGValue(c); b := GetBValue(c); if (r + g + b) div 3 > 128 then begin Image1.Canvas.Pixels[x,y] := clWhite; end else begin Image1.Canvas.Pixels[x,y] := clBlack; end; end; end; end;
Число 128 - это порог сравнения. Его можно менять чтобы подогнать под нужный вид. Часто 80 идет очень хороош
slesh, спасибо за пример. [offtop] Не подскажешь, как правильно уничтожить объект TImage в билдере, чтобы освободить всю память? [/offtop]