
11.04.2010, 14:48
|
|
Познавший АНТИЧАТ
Регистрация: 05.03.2007
Сообщений: 1,985
Провел на форуме: 3288241
Репутация:
3349
|
|
самый преметивный сопсоб: простым сравнение средней яркости. Тупой способ, но более менее норм выглядит и простой. Вот не оптимизированный вариант.
Код:
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;
|
|
|