c#图像截取实例

作者:shichen2014 时间:2022-02-21 07:49:58 

本文实例讲述了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#程序设计有所帮助。

标签:c#,图像,截取
0
投稿

猜你喜欢

  • Java线程中sleep和wait的区别详细介绍

    2021-08-27 02:23:12
  • Mybatis Generator最完美配置文件详解(完整版)

    2021-06-13 05:11:06
  • spring获取bean的源码解析

    2023-10-11 22:15:43
  • 使用开源项目JAVAE2 进行视频格式转换

    2023-11-08 07:18:24
  • C# WinForm制作登录界面的实现步骤

    2022-09-06 18:32:54
  • Java字符串拼接详解

    2022-10-17 06:22:51
  • Java实现排球比赛计分系统

    2021-07-11 09:11:14
  • JavaFX实现简单日历效果

    2023-05-16 08:43:30
  • Java中File文件操作类的基础用法

    2022-09-28 14:37:03
  • springboot远程debug调试全过程

    2023-11-25 07:05:56
  • JAVA的反射机制你了解多少

    2023-11-29 16:46:38
  • 解析JAVA深度克隆与浅度克隆的区别详解

    2023-11-02 10:57:28
  • Spring Cloud中Sentinel的两种限流模式介绍

    2021-11-22 00:38:10
  • 浅析Java中的内存泄漏

    2023-12-19 02:29:02
  • C#异步调用实例小结

    2023-07-16 10:31:03
  • Spring中bean集合注入的方法详解

    2022-08-26 07:37:41
  • Spring使用@Autowired为抽象父类注入依赖代码实例

    2023-02-01 09:30:35
  • Java泛型定义与用法实例详解

    2023-11-25 11:50:28
  • Spring MVC URL地址映射的示例代码

    2022-12-09 19:53:33
  • java开源项目jeecgboot的超详细解析

    2023-07-19 03:30:53
  • asp之家 软件编程 m.aspxhome.com