调用目标对象的DrawToBitmap()方法即可
也可以按如下方法实现
获取某个窗体或控件的图像拷贝!
最近正写一个图像控件,要求获取该控件显示的内容并保存为一个位图文件。
具体实现如下:
步骤如下:
1、获取该控件的Graphics对象
2、用此Graphics对象创建一个新位图。
3、获取新位图的Graphics对象。
4、将控件的Graphics对象内容拷贝到位图的Graphics对象
具体实现如下:
[System.Runtime.InteropServices.DllImport(
"
gdi32.dll
"
)]
private static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
public Bitmap GetCurrentImage()
{
Graphics g = this.CreateGraphics();
Bitmap bitmap = new Bitmap(this.Width,this.Height,g);
Graphics memg = Graphics.FromImage(bitmap);
System.IntPtr dc1 = g.GetHdc();
System.IntPtr dc2 = memg.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
g.ReleaseHdc(dc1);
memg.ReleaseHdc(dc2);
memg.Dispose();
g.Dispose();
return bitmap;
}
private static extern long BitBlt (IntPtr hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, IntPtr hdcSrc, int nXSrc, int nYSrc, int dwRop);
public Bitmap GetCurrentImage()
{
Graphics g = this.CreateGraphics();
Bitmap bitmap = new Bitmap(this.Width,this.Height,g);
Graphics memg = Graphics.FromImage(bitmap);
System.IntPtr dc1 = g.GetHdc();
System.IntPtr dc2 = memg.GetHdc();
BitBlt(dc2, 0, 0, this.ClientRectangle.Width, this.ClientRectangle.Height, dc1, 0, 0, 13369376);
g.ReleaseHdc(dc1);
memg.ReleaseHdc(dc2);
memg.Dispose();
g.Dispose();
return bitmap;
}
1、获取该控件的Graphics对象
2、用此Graphics对象创建一个新位图。
3、获取新位图的Graphics对象。
4、将控件的Graphics对象内容拷贝到位图的Graphics对象