c#实现winform屏幕截图并保存的示例
c#实现winform屏幕截图并保存的示例
发布时间:2016-12-28 来源:查字典编辑
摘要:复制代码代码如下:usingSystem.Runtime.InteropServices;usingSystem.Drawing.Imagi...

复制代码 代码如下:

using System.Runtime.InteropServices;

using System.Drawing.Imaging;

[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]

private static extern bool BitBlt(

IntPtr hdcDest, // 目标 DC的句柄

int nXDest,

int nYDest,

int nWidth,

int nHeight,

IntPtr hdcSrc, // 源DC的句柄

int nXSrc,

int nYSrc,

System.Int32 dwRop // 光栅的处理数值

);

private void button1_Click(object sender, System.EventArgs e)

{

//获得当前屏幕的大小

Rectangle rect = new Rectangle ( ) ;

rect = Screen.GetWorkingArea ( this ) ;

//创建一个以当前屏幕为模板的图象

Graphics g1 = this.CreateGraphics ( ) ;

//创建以屏幕大小为标准的位图

Image MyImage = new Bitmap ( rect.Width , rect.Height , g1 ) ;

Graphics g2 = Graphics.FromImage ( MyImage ) ;

//得到屏幕的DC

IntPtr dc1 = g1.GetHdc ( ) ;

//得到Bitmap的DC

IntPtr dc2 = g2.GetHdc ( ) ;

//调用此API函数,实现屏幕捕获

BitBlt ( dc2 , 0 , 0 , rect.Width , rect.Height , dc1 , 0 , 0 , 13369376 ) ;

//释放掉屏幕的DC

g1.ReleaseHdc ( dc1 ) ;

//释放掉Bitmap的DC

g2.ReleaseHdc ( dc2 ) ;

//以JPG文件格式来保存

MyImage.Save ( @"c:/Capture.jpg" , ImageFormat.Jpeg );

MessageBox.Show ( "当前屏幕已经保存为C盘的capture.jpg文件!" ) ;

}

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类