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

2016-02-19 14:20 4 1 收藏

下面图老师小编要跟大家分享Delphi图象截取编程示例(4),简单的过程中其实暗藏玄机,还是要细心学习,喜欢还请记得收藏哦!

【 tulaoshi.com - 编程语言 】

 

  (六)TMainForm的 (抓图)Action 事件
  
  [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;

     抓取区域图片,即要用到一个新的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 (RightLeft)and(BottomTop) 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;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

    { 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;

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

来源:http://www.tulaoshi.com/n/20160219/1606753.html

延伸阅读
    输出图象 当图象优化完成以后,就可以输出了 1,选择File - Export to可以直接进行输出 2,选择Images Only只输出图象 3,选择html and images可输出图象和html文件 输出一个区域的图象 1,选择工具条上的输出区域工具,在图上画出需要输出的区域范围 2,双击输出区...
拖放(DragDrop)是Windows提供的一种快捷的操作方式。作为基于Windows的开发工具,Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了Delphi的强大功能和方便性。 Delphi提供的所有控件(Control,即能获得输入焦点的部件)都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我们先介绍控件的拖放支持...
标签: Delphi
  拖放 (DragDrop)是 Windows 提供的一种快捷的操作方式。作为基于 Windows 的开发工具, Delphi同样支持拖放操作,而且开发应用系统的拖放功能十分方便,真正体现了 Delphi 的强大功能和方便性。 Delphi提供的所有控件 (Control ,即能获得输入焦点的部件 ) 都支持拖放操作,并有相应的拖放属性、拖放事件和拖放方法。下面我...
◇[DELPHI]网络邻居复制文件 uses shellapi; copyfile(pchar('newfile.txt'),pchar('//computername/direction/targer.txt'),false); ◇[DELPHI]产生鼠标拖动效果 通过MouseMove事件、DragOver事件、EndDrag事件实现,例如在PANEL上的LABEL: var xpanel,ypanel,xlabel,ylabel:integer; PAN...
标签: Delphi
  Delphi作为一门新起的Windows编程语言,由于其集众多的优秀特性于一身,因而越来越得到广大编程人员和发烧友的青睐。以下十则技巧涉及的面比较广泛,希望能够对Delphi的爱好者有所裨益。 1.类似于vb.中的doevents功能。 大家或许发现,在Delphi中没有类似于vb.中的doevents函数,这样有的时候,我们将无法使Windows响应...

经验教程

111

收藏

49
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部