Delphi实现截屏存盘的方法

本文实例讲述了Delphi实现截屏存盘的方法。分享给大家供大家参考。具体分析如下:

该实例可实现截取屏幕,并保存为JPEG文件格式的功能。

procedure TForm1.ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer);
var
 RectWidth,RectHeight:integer;
 SourceDC,DestDC,Bhandle:integer;
 Bitmap:TBitmap;
 MyJpeg: TJpegImage;
 Stream:TMemoryStream;
begin
 MyJpeg:= TJpegImage.Create;
 RectWidth:=RightPos-LeftPos;
 RectHeight:=BottomPos-TopPos;
 SourceDC:=CreateDC('DISPLAY','','',nil);
 DestDC:=CreateCompatibleDC(SourceDC);
 Bhandle:=CreateCompatibleBitmap(SourceDC,
 RectWidth,RectHeight);
 SelectObject(DestDC,Bhandle);
 BitBlt(DestDC,0,0,RectWidth,RectHeight,SourceDC,
 LeftPos,TopPos,SRCCOPY);
 Bitmap:=TBitmap.Create;
 Bitmap.Handle:=BHandle;
 Stream := TMemoryStream.Create;
 Bitmap.SaveToStream(Stream);
 Stream.Free;
 try
  MyJpeg.Assign(Bitmap);
  MyJpeg.CompressionQuality:=70;
  MyJpeg.Compress;
  MyJpeg.SaveToFile('C:MyJPEGImage.JPG');
 finally
  MyJpeg.Free;
  Bitmap.Free;
  DeleteDC(DestDC);
  ReleaseDC(Bhandle,SourceDC);
 end;
end;

希望本文所述对大家的Delphi程序设计有所帮助。

(0)

相关推荐

  • ListView 百分比进度条(delphi版)

    在看代码之前先给大家附上效果图: 废话不多说了,直接给大家贴代码了. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ImgList; type TForm1 = class(TForm) btn1: TButton; lv1: TListView; trckbr1: TTrackBa

  • Delphi提取PDF文本实例

    生成PDF的控件很多,但解析的不是太多,pdf Toolkit可以,但测试的第一个复杂的pdf就报告错误,并且汉字乱码,可能使用的版本或使用方法不对. 想起之前使用java调用的Apache名下的pdfBox库很好用,于是就用下载了pdfBox,使用Delphi来调用pdfBox解析pdf文本. 环境要求:java运行环境 pdfBox应用包:pdfbox-app-2.0.6.jar 这里使用了DOS命令行来解析,然后调用解析结果. 首先是执行DOS命令: procedure CheckResu

  • Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法

    本文实例讲述了Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法.分享给大家供大家参考.具体实现方法如下: const WM_MouseEnter = $B013; WM_MouseLeave = $B014; type TfrmMain = class(TForm) . . Timer1: TTimer; procedure Timer1Timer(Sender: TObject); protected procedure WMMouseEnter(var Msg: TMessage)

  • Delphi 实现软件自动升级的功能

    Delphi 实现软件自动升级的功能 原理简单,在FTP上维护一个Update.ini文件,里面记录着要更新文件的版本号,本地也有一个Update.ini文件,每次启动更新程序时,先从FTP上下载Update.ini文件到本地名字为Update_new.ini,然后比较这两个文件,如果新的版本号大于旧的,或者新的文件在就ini中没有,这些就表示要更新的文件,然后逐一下载. 本程序名字为AutoUpdate,你生成这个exe,然后和主程序一起打包,创建桌面快捷方式时,指向AutoUpdate,而不

  • Delphi 根据字符串找到函数并执行的实例

    Delphi 根据字符串找到函数并执行的实例  关键字:MethodAddress:取得方法的地址,这个方法需要是published的. 实例代码: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TShowInfo = procedure(info:string) of object; //声

  • Delphi 用DLL实现插件的简单实例

    Delphi 用DLL实现插件的简单实例 这是DLL的代码 实现代码: library MyDll; uses SysUtils, Dialogs, Classes; procedure ShowInfo(info:PChar);stdcall; begin ShowMessage('您选择了['+info+']'); end; function GetCaption:Pchar; begin Result := '中国'; end; exports ShowInfo, GetCaption;

  • Delphi XE5 为Android应用制作签名的方法(图文)

    要发布android应用,必须做签名的.看一下具体的操作步骤: 1.进入Project-Options: 2.打开Options窗口,选择Provisioning,在这里,可以为目标平台选择签名文件,也可生成新的签名文件. 2.1 选择目标平台,可以为dubug或release设置签名,默认情况下,debug签名文件是存在的,可不用设置,这也是我们建立一个新的Android项目,就可以不用签名就能在模拟器上跑的原因,真正发布时,是必须做签名的. 2.2,为发布做一个新的签名,选择Target为R

  • Delphi 中内存映射对于大文件的使用

    Delphi 中内存映射对于大文件的使用 平时很少使用大文件的内存映射,碰巧遇到了这样的要求,所以把过程记录下来,当给各位一个引子吧,因为应用不算复杂,可能有考虑不到的地方,欢迎交流. 对于一些小文件,用普通的文件流就可以很好的解决,可是对于超大文件,比如2G或者更多,文件流就不行了,所以要使用API的内存映射的相关方法,即使是内存映射,也不能一次映射全部文件的大小,所以必须采取分块映射,每次处理一小部分. 先来看几个函数 CreateFile :打开文件 GetFileSize : 获取文件尺

  • Delphi实现截屏存盘的方法

    本文实例讲述了Delphi实现截屏存盘的方法.分享给大家供大家参考.具体分析如下: 该实例可实现截取屏幕,并保存为JPEG文件格式的功能. procedure TForm1.ScreenCap(LeftPos,TopPos,RightPos,BottomPos:integer); var RectWidth,RectHeight:integer; SourceDC,DestDC,Bhandle:integer; Bitmap:TBitmap; MyJpeg: TJpegImage; Stream

  • iOS 对当前webView进行截屏的方法

    UIWebView和WKWebView的截屏有所区别: UIWebView: func getImage(context: ServiceExecuteContext) -> UIImage { //创建一个基于位图的图形上下文并指定大小 UIGraphicsBeginImageContextWithOptions(context.fromViewController.webView.bounds.size, true, 0) //renderInContext呈现接受者及其子范围到指定的上下文

  • Android编程之截屏实现方法(包括scrollview与listview)

    本文实例讲述了Android编程之截屏实现方法.分享给大家供大家参考,具体如下: public class ScreenShot { // 获取指定Activity的截屏,保存到png文件 public static Bitmap takeScreenShot(Activity activity) { // View是你需要截图的View View view = activity.getWindow().getDecorView(); view.setDrawingCacheEnabled(tr

  • Android实现矩形区域截屏的方法

    对屏幕进行截屏并裁剪有两种方式:早截图和晚截图.早截图,就是先截取全屏,再让用户对截取到的图片进行修改:与之相对的,晚截图,就是先让用户在屏幕上划好区域,再进行截图和裁剪.其实两者并没有什么太大的区别,这篇就说说怎么实现晚截图. 晚截图可以分成三步: 1. 在屏幕上标出截图的矩形区域 2. 调用系统接口截屏 3. 对截图进行裁剪 效果图如下: 第一步.在屏幕上标识出截图区域 首先确定标识截图区域所需要的功能: 1. 手指拖动形成矩形区域: 2. 可以拖动已经划好的矩形区域进行移动: 3. 可以拖

  • Android 屏幕截屏方法汇总

    1.直接使用getWindow().getDecorView().getRootView() 直接使用getWindow().getDecorView().getRootView()是获取当前屏幕的activity.然而对于系统状态栏的信息是截不了,出现一条空白的.如下图: 主要到没,有一条白色边就是系统状态栏.看一下代码,很简单都加了注释了. //这种方法状态栏是空白,显示不了状态栏的信息 private void saveCurrentImage() { //获取当前屏幕的大小 int wi

  • Android截屏截图的几种方法总结

    Android截屏 Android截屏的原理:获取具体需要截屏的区域的Bitmap,然后绘制在画布上,保存为图片后进行分享或者其它用途 一.Activity截屏 1.截Activity界面(包含空白的状态栏) /** * 根据指定的Activity截图(带空白的状态栏) * * @param context 要截图的Activity * @return Bitmap */ public static Bitmap shotActivity(Activity context) { View vie

  • Android 下调试手机截屏的方法

    Android 下调试手机截屏的方法 Android开发过程中,难免会需要对手机进行截屏.以前截屏时一直到处找截屏软件,操作复杂. 今天刚发现,原来ADT是自带截屏功能的,而且操作简单. 打开DDMS视图,在Device框的右上角有一个照相机的小图标按钮,此按钮即可实现截屏功能,如图. 点击该按钮时,弹出如下对话框: 然后就可以将截屏图片保存或复制了! 如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • Android Activity 不能被截屏的解决方法

    在Activity 添加即可 getWindow().addFlags(WindowManager.LayoutParams.FLAG_SECURE); 以上这篇Android Activity 不能被截屏的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 您可能感兴趣的文章: Android截屏方案实现原理解析 Android截屏分享功能 Android 下调试手机截屏的方法 Android 实现截屏功能的实例 android长截屏原理及实现代码 Andr

  • 使用Phantomjs和Node完成网页的截屏快照的方法

    由于甲方爸爸的需要,最近使用phantomjs和Node写了一个对网页内容截屏的功能,为了避免忘记,现在将代码内容及配置流程大概描述一下. 1.首先Node是必须安装的,而且网上安装教程一大堆,在此不再赘述,Nodejs官网链接 2.然后,第二个主人公是phantomjs,官网下载地址,选择对应的系统下载对应的安装包 3.将phantomjs配置为系统变量,下面是Windows配置为环境变量: 配置完成之后,在cmd命令行中输入 phantomjs -v 检验是否配置成功,配置成功之后,如下图所

  • Python使用Phantomjs截屏网页的方法

    实例如下所示: #!/usr/bin/python # -*- coding:utf8 -*- from selenium import webdriver import os driver1 = webdriver.PhantomJS(executable_path='/usr/local/bin/phantomjs') driver1.get("http://www.csdn.net") data = driver1.title driver1.save_screenshot('c

随机推荐