Delphi圖片局部放大查看程序代碼設計分析,(1)程序的關鍵是如何實現局部圖像的放大,我們利用OnMouseMove 事件可以獲得鼠標所在位置的坐標,使用CopyRect 函數對相關位置的圖像進行拷貝,然後對該坐標值進行算法處理,即可達到目的。代碼如下:
{實現復制圖像的過程}
procedure TMainForm.ImageCopy(CenterX, CenterY, Side: Integer);
begin
with Source do
begin//獲取圖像的像素信息
Left:=CenterX-Side;
Top:=CenterY-Side;
Right:=CenterX+Side;
Bottom:=CenterY+Side;
end;
with Dest do
begin//復制圖像相關像素
Left:=CenterX-dSide;
Top:=CenterY-dSide;
Right:=CenterX+dSide;
Bottom:=CenterY+dSide;
end;
ForeImage.Canvas.CopyRect(Dest, BackImage.Canvas, Source);//復制圖像
end;
{放大圖像}
procedure TMainForm.ForeImageMouseMove(Sender: TObject; Shift: TShiftState;
X, Y: Integer);
begin
NewX:=X;//鼠標位置
NewY:=Y;
if msHide then
begin
OldX:=NewX;
OldY:=NewY;
msHide:=False;
ShowCursor(False);//隱藏鼠標
end
else
begin
ImageCopy(OldX, OldY, dSide);// 復制圖像
end;
ImageCopy(NewX, NewY, sSide);//放大圖像
OldX:=NewX;
OldY:=NewY;
end;
(2)在圖像上雙擊鼠標左鍵,使光標可見,同時使程序中幾個控制按鈕變為可見。代碼如下:
procedure TMainForm.ForeImageDblClick(Sender: TObject);
begin
showcursor(true);//顯示鼠標
exit.Visible:=true;//激活窗體中的按鈕
open.Visible:=true;
about.Visible:=true;
end;
(3)點擊“打開”按鈕,可以導入選定的圖像文件,同時窗體中的控制按鈕變為不可見,代碼如下:
procedure TMainForm.openClick(Sender: TObject);
begin
mainForm.OpenPictureDialog1.Title:=’請選擇一個圖像文件打開’;
//打開對話框的標題
mainForm.OpenPictureDialog1.InitialDir:=’C:\My Documents\My Pictures’;
//打開文件的路徑
if mainForm.OpenPictureDialog1.Execute then
mainForm.foreImage.Picture.LoadFromFile(mainForm.OpenPicturedialog1.FileName);
//導入圖像文件
mainForm.backImage.Picture.LoadFromFile(mainForm.OpenPicturedialog1.FileName);
showcursor(False);
exit.Visible:=False;//使窗體中的按鈕不可見
open.Visible:=False;
about.Visible:=False;
end;
Delphi圖片局部放大查看程序完整代碼:
vIEw source