c#图像截取实例

本文实例讲述了c#图像截取的实现方法。分享给大家供大家参考。具体如下:

图像截取的相关代码如下: 

public Form1()  

{  

   InitializeComponent();  

} 

private void button1_Click(object sender, EventArgs e)  {     Image pic = new Bitmap(this.Width, this.Height);     Graphics graphic = Graphics.FromImage(pic);     graphic.CopyFromScreen(new Point(this.Location.X, this.Location.Y), new Point(0, 0), new Size(this.Width, this.Height));     pic.Save(@"d:/test.jpeg", ImageFormat.Jpeg);     graphic.Dispose();  } 

[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]  private static extern bool BitBlt(     IntPtr hdcDest, //目标设备的句柄     int nXDest, // 目标对象的左上角的X坐标     int nYDest, // 目标对象的左上角的X坐标     int nWidth, // 目标对象的矩形的宽度     int nHeight, // 目标对象的矩形的长度     IntPtr hdcSrc, // 源设备的句柄     int nXSrc, // 源对象的左上角的X坐标     int nYSrc, // 源对象的左上角的X坐标     System.Int32 dwRop // 光栅的操作值     );  [System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]  private static extern IntPtr CreateDC(     string lpszDriver, // 驱动名称     string lpszDevice, // 设备名称     string lpszOutput, // 无用,可以设定位"NULL"     IntPtr lpInitData // 任意的打印机数据     ); 

private void Form1_SizeChanged(object sender, EventArgs e)  {     } 

private void button2_Click(object sender, EventArgs e)  {     this.Hide();          IntPtr dc1 = CreateDC("DISPLAY", null,         null, (IntPtr)null);     //创建显示器的DC     Graphics g1 = Graphics.FromHdc(dc1);     //由一个指定设备的句柄创建一个新的Graphics对象     Bitmap MyImage =         new Bitmap(Screen.PrimaryScreen.Bounds.Width,      Screen.PrimaryScreen.Bounds.Height, g1);     //根据屏幕大小创建一个与之相同大小的Bitmap对象     Graphics g2 = Graphics.FromImage(MyImage);     //获得屏幕的句柄     IntPtr dc3 = g1.GetHdc();     //获得位图的句柄     IntPtr dc2 = g2.GetHdc();     //把当前屏幕捕获到位图对象中     BitBlt(dc2, 0, 0, Screen.PrimaryScreen.Bounds.Width,         Screen.PrimaryScreen.Bounds.Height,         dc3, 0, 0, 13369376);     //把当前屏幕拷贝到位图中     g1.ReleaseHdc(dc3);     //释放屏幕句柄     g2.ReleaseHdc(dc2);     //释放位图句柄 

   Bitmap img = new Bitmap(MyImage, 800, 600);     //缩放图片到800*600     img.Save("d:\\MyJpeg.jpg", ImageFormat.Jpeg);     MessageBox.Show("已经把当前屏幕保存到" +         "C:\\MyJpeg.jpg文件中!");     this.Show();  }

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