1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
| PROCEDURE Tform1.Btnfusionclick(Sender: Tobject);
Var
I, J, X, Y, N, R: Integer;
Sum: Longint;
BEGIN
With PB Do Begin
Max:=ImFrom.Picture.Bitmap.Height;
Visible:=true;
END;
ImTo.Visible:=false;
C:=0;
Sum:=0;
N:=SpinEdFus.Value;
R:=N div 2;
For J:=R to ImFrom.Picture.Bitmap.Height-R-1 Do Begin
pb.Position:=j;
For I:=R to ImFrom.Picture.Bitmap.Width-R-1 Do Begin
//****************************************
Sum:=0;
For Y:=J-R to J+R Do
For X:=I-R to I+R Do begin
C:=ImFrom.Picture.Bitmap.Canvas.Pixels[X, Y];
Sum:=Sum+C;
end;
//****************************************
Sum:=Sum div (N*N);
ImTo.Picture.Bitmap.Canvas.Pixels[I, J]:=Sum;
B.Canvas.Pixels[I, J]:=Sum;
END;
END;
PB.Visible:=false;
ImTo.Refresh;
ImTo.Visible:=true;
Memo.Lines.Add('Fusion '+IntToStr(N)+'*'+IntToStr(N));
BtnSaveBMPTo.Click;
End; |
Partager