Привет всем. Сегодня мы будем писать програмку которая может размыть
картинку.
Бросай на форму Timage и Tbutton имена оставь по умолчанию,
создавай событие button1.click вот его код:
procedure TForm1.button1Click(Sender: TObject);
var x,
y: integer;
i, j,h:integer;
r,g,b,r1,g1,b1,r2,g2,b2,r3,r4,g3,g4,b3,b4,r5,r6,r7,r8,g5,g6,g7,g8,b5,b6,b7,b8:byte;
c,c1,c2,c3,c4,c5,c6,c7,c8,c9,c10:tcolor;
begin
application.ProcessMessages;
for y := 1 to
image1.picture.height-1 do begin
application.ProcessMessages;
for x := 1 to image1.picture.width-1 do begin
c1 :=
(image1.Canvas.Pixels[x-1,y+1]);
c2 :=
(image1.Canvas.Pixels[x-1,y-1]);
c3 :=
(image1.Canvas.Pixels[x+1,y+1]);
c4 :=
(image1.Canvas.Pixels[x+1,y-1]);
c5 :=
(image1.Canvas.Pixels[x,y-1]);
c6 :=
(image1.Canvas.Pixels[x,y+1]);
c7 :=
(image1.Canvas.Pixels[x-1,y]);
c8 :=
(image1.Canvas.Pixels[x+1,y]);
c9:=(image1.Canvas.Pixels[x,y]);////по 9-ий пиксель
///////получение значений красного синего
r:=getrvalue(c7);
g:=getgvalue(c7); b:=getbvalue(c7);
r1:=getrvalue(c8);
g1:=getgvalue(c8); b1:=getbvalue(c8);
r2:=getrvalue(c9);
g2:=getgvalue(c9); b2:=getbvalue(c9);
r3:=getrvalue(c6);
g3:=getgvalue(c6); b3:=getbvalue(c6);
r4:=getrvalue(c5);
g4:=getgvalue(c5); b4:=getbvalue(c5);
r5:=getrvalue(c4);
g5:=getgvalue(c4); b5:=getbvalue(c4);
r6:=getrvalue(c3);
g6:=getgvalue(c3); b6:=getbvalue(c3);
r7:=getrvalue(c2);
g7:=getgvalue(c2); b7:=getbvalue(c2);
r8:=getrvalue(c1);
g8:=getgvalue(c1); b8:=getbvalue(c1);
r:=round((r+r1+r2+r3+r4+r5+r6+r7+r8)/9);
g:=round((g+g1+g2+g3+g4+g5+g6+g7+g8)/9);
b:=round((b+b1+b2+b3+b4+b5+b6+b7+b8)/9);
c10 :=rgb(r,g,b);
ControlStyle := ControlStyle + [ csOpaque ];
image1.Canvas.Pixels[x,y] := c10;
end;
end;
end;
Вот и все упростите код, введите массивы и т.д. Если есть вопросы пишите на
mor@atnet.ru.