添加引用
using System.Data;
using System.Drawing.Imaging;
调用API并保存图片
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool BitBlt(
IntPtr hdcDest, //目的DC的句柄
int nXDest, //目的图形的左上角的x坐标
int nYDest, //目的图形的左上角的y坐标
int nWidth, //目的图形的矩形宽度
int nHeight, //目的图形的矩形高度
IntPtr hdcSrc, //源DC的句柄
int nXSrc, //源图形的左上角的x坐标
int nYSrc, //源图形的左上角的x坐标
System.Int32 dwRop //光栅操作代码
);
private void button1_Click(object sender, System.EventArgs e)
{
Graphics g1 = this.CreateGraphics();//获得窗体图形对象
Image MyImage = new Bitmap(this.ClientRectangle.Width, this.ClientRectangle.Height, g1);
Graphics g2 = Graphics.FromImage(MyImage);//创建位图图形对象
IntPtr dc1 = g1.GetHdc();//获得窗体的上下文设备
IntPtr dc2 = g2.GetHdc();//获得位图文件的上下文设备
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);//写入到位图
g1.ReleaseHdc(dc1);//释放窗体的上下文设备
g2.ReleaseHdc(dc2);//释放位图文件的上下文设备
MyImage.Save(@"c:/Captured.jpg", ImageFormat.Jpeg);//保存为jpeg文件
MessageBox.Show("保存图片结束!");
}