Delphi图象截取编程示例(4)

王朝delphi·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

(六)TMainForm的 (抓图)Action 事件

1)全屏抓图

[Capture Desktop] Action 事件

procedure TMainForm.cptDesktopExecute(Sender: TObject);

begin

inc(CaptureNum,1);

Application.Minimize ; //窗体最小化

Delay(500); //最小化后延时,为了全屏抓图不把自身抓进图中

FileName:='Capture'+IntToStr(CaptureNum)+'.bmp';

FileName:=DefaultDirectory+FileName;

CreateMDIChild(FileName,true);

StatusBar.SimpleText := FileName;

with ActiveMDIChild as TMDIChild do begin

Image1.Picture.Bitmap := CaptureScreen; //抓图

HorzScrollBar.Range := Image1.Picture.Width;

VertScrollBar.Range := Image1.Picture.Height;

end;

Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'

+ ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';

application.Restore ;

end;

2)区域抓图

抓取区域图片,即要用到一个新的Form1,参见《Delphi图象截取编程示例(6)》 .

在Main单元implementation的uses中添加Capture1。

在Main单元添加私有过程CaptureArea :

procedure TMainForm.CaptureArea;

begin

with TForm1.Create(Application) do

try

if ShowModal=mrOK then

with fRect do begin

if (Right>Left)and(Bottom>Top) then begin

Delay(400);

ABitmap:=TBitmap.Create;

ABitmap.Assign(CaptureScreenRect(fRect));

Child.Image1.Picture.Bitmap:=ABitmap;

Child.ClientWidth := Child.Image1.Picture.Width ;

Child.ClientHeight:= Child.Image1.Picture.Height;

Child.HorzScrollBar.Range:=Child.Image1.Picture.Width ;

Child.VertScrollBar.Range:=Child.Image1.Picture.Height;

ABitmap.Free ;

end else begin

MessageDlg('选择图片区域错误,请重新选择!',mtInformation,[mbOK],0);

Child.Close ;

Form1.Free ;

exit;

end;

end;

finally

Free;

end;

end;

[Capture Area]区域抓图的Action 事件

procedure TMainForm.cptAreaExecute(Sender: TObject);

begin

Inc(CaptureNum,1);

Application.Minimize ;

Delay(500);

FileName:='Capture'+IntToStr(CaptureNum)+'.bmp';

FileName:=DefaultDirectory+FileName;

{ Create MDI Child Window }

CreateMDIChild(FileName,true);

StatusBar.SimpleText := FileName;

{ Capture Area of screen }

CaptureArea;

Child.Image1.Hint := 'Height:'+intToStr(child.Image1.Picture.Height)+'pixels'

+ ' Width:'+intToStr(child.Image1.Picture.Width)+'pixels';

application.Restore ;

end;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航