源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

c#图像截取实例

  • 时间:2022-07-06 18:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:c#图像截取实例
本文实例讲述了c#图像截取的实现方法。分享给大家供大家参考。具体如下: 图像截取的相关代码如下: 
[u]复制代码[/u] 代码如下:
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#程序设计有所帮助。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部