Código Delphi
[-]
procedure Erosionar(bmp : TBitmap);
var
i, j : integer;
ori : TBitmap;
begin
ori := TBitmap.Create;
ori.Width := bmp.Width;
ori.Height := bmp.Height;
for i := 0 to bmp.width do
for j := 0 to bmp.Height do
ori.Canvas.Pixels[i,j] := bmp.Canvas.Pixels[i,j];
for i := 0 to bmp.width do
for j := 0 to bmp.Height do
with ori.Canvas do
begin
if (Pixels[i-1,j-1] = clBlack) or
(Pixels[i ,j-1] = clBlack) or
(Pixels[i+1,j-1] = clBlack) or
(Pixels [i-1,j] = clBlack) or
(Pixels [i+1,j] = clBlack) or
(Pixels [i-1,j+1] = clBlack) or
(Pixels [i ,j+1] = clBlack) or
(Pixels[i+1,j+1] = clBlack) then
bmp.canvas.Pixels[i,j] := clblack else
bmp.canvas.Pixels[i,j] := Pixels[i,j];
end;
ori.Free;
end;
de todas maneras, te recomiendo que entiendas el codigo, sino siempre estaras pidiendo al respecto. Un saludo
