查看: 60|回覆: 0

[教程] Delphi实现截屏存盘的方法

[複製鏈接]

6

主題

0

回帖

0

積分

热心网友

金币
0
閲讀權限
220
精華
0
威望
0
贡献
0
在線時間
0 小時
註冊時間
2011-8-15
發表於 2015-5-8 15:56:31 | 顯示全部樓層 |閲讀模式

本文实例讲述了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程序设计有所帮助。

您可能感兴趣的文章:
  • Delphi 用DLL实现插件的简单实例
  • Delphi 根据字符串找到函数并执行的实例
  • Delphi 中内存映射对于大文件的使用
  • Delphi提取PDF文本实例
  • Delphi XE5 为Android应用制作签名的方法(图文)
  • ListView 百分比进度条(delphi版)
  • Delphi实现窗体感知鼠标滑过并自动隐藏与显示窗口的方法
  • Delphi 实现软件自动升级的功能
回覆

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即注册

本版積分規則

相关侵权、举报、投诉及建议等,请发 E-mail:qiongdian@foxmail.com

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部