public void DrawImage(

    Image image,

    Rectangle destRect,

    Rectangle srcRect,

    GraphicsUnit srcUnit

)

public void DrawImage(

    Image image,

    int x,

    int y,

    Rectangle srcRect,

    GraphicsUnit srcUnit

)

[c-sharp] view plaincopy
  1. #region   截取图象
  2. ///   <summary>
  3. ///   从图片中截取部分生成新图
  4. ///   </summary>
  5. ///   <param   name= "sFromFilePath "> 原始图片 </param>
  6. ///   <param   name= "saveFilePath "> 生成新图 </param>
  7. ///   <param   name= "width "> 截取图片宽度 </param>
  8. ///   <param   name= "height "> 截取图片高度 </param>
  9. ///   <param   name= "spaceX "> 截图图片X坐标 </param>
  10. ///   <param   name= "spaceY "> 截取图片Y坐标 </param>
  11. public static void CaptureImage(string sFromFilePath, string saveFilePath, int width, int height, int spaceX, int spaceY)
  12. {
  13. //载入底图
  14. Image fromImage = Image.FromFile(sFromFilePath);
  15. int x = 0;   //截取X坐标
  16. int y = 0;   //截取Y坐标
  17. //原图宽与生成图片宽   之差
  18. //当小于0(即原图宽小于要生成的图)时,新图宽度为较小者   即原图宽度   X坐标则为0
  19. //当大于0(即原图宽大于要生成的图)时,新图宽度为设置值   即width         X坐标则为   sX与spaceX之间较小者
  20. //Y方向同理
  21. int sX = fromImage.Width - width;
  22. int sY = fromImage.Height - height;
  23. if (sX > 0)
  24. {
  25. x = sX > spaceX ? spaceX : sX;
  26. }
  27. else
  28. {
  29. width = fromImage.Width;
  30. }
  31. if (sY > 0)
  32. {
  33. y = sY > spaceY ? spaceY : sY;
  34. }
  35. else
  36. {
  37. height = fromImage.Height;
  38. }
  39. //创建新图位图
  40. Bitmap bitmap = new Bitmap(width, height);
  41. //创建作图区域
  42. Graphics graphic = Graphics.FromImage(bitmap);
  43. //截取原图相应区域写入作图区
  44. graphic.DrawImage(fromImage, 0, 0, new Rectangle(x, y, width, height), GraphicsUnit.Pixel);
  45. //从作图区生成新图
  46. Image saveImage = Image.FromHbitmap(bitmap.GetHbitmap());
  47. //保存图象
  48. saveImage.Save(saveFilePath, ImageFormat.Jpeg);
  49. //释放资源
  50. saveImage.Dispose();
  51. bitmap.Dispose();
  52. graphic.Dispose();
  53. }
  54. #endregion

//调用方法

CaptureImage(@"D:/1.jpg", @"d:/2.jpg", 50, 50, 300, 300);

c# 从一个大图里截取图形相关推荐

  1. 如何解决有时一个CAD里的图形无法复制到另一个CAD文件里?

    一般高版本的CAD复制到低版本CAD中是不能简单用ctrl+c,ctrl+v的. 如果要复制,在低版本CAD中插入–块--浏览–选择CAD图形文件插入,就会出现提示指定插入点. 不能复制粘贴的原因多种 ...

  2. python做界面用什么软件好_pyqt | 做一个好用的图形界面软件

    原标题:pyqt | 做一个好用的图形界面软件 pyqt5快速开发与实战 什么是pyqt? PyQt是一个用python创建GUI(图形界面)应用程序的工具包它是Python编程语言和Qt库的成功融合 ...

  3. Qt Quick里的图形效果——颜色(Color)

    Qt Quick提供了通过改变一个 Item 的颜色来产生各种各样效果的元素.有下面几种: BrightnessContrast,调整亮度和对比度 ColorOverlay,在源 Item 上覆盖一层 ...

  4. Qt Quick里的图形效果——渐变(Gradient)

    Qt Quick提供了三种渐变图形效果: ConicalGradient,锥形渐变 LinearGradient,线性渐变 RadialGradient,径向渐变 效果 下图是我设计的示例效果: 图 ...

  5. SAP 往一个角色里增加事务代码

    SAP 往一个角色里增加事务代码 1,PFCG,输入角色名字, 点"更改"按钮,进入如下界面, 进入'菜单'选项卡,就能增加事务代码了.如上图.保存即可. 2, 为这个更改创建TR ...

  6. ASP.NET一般处理程序新建一个方法里使用context.Response.Write的解决方法

    ASP.NET一般处理程序新建一个方法里使用context.Response.Write的解决方法 参考文章: (1)ASP.NET一般处理程序新建一个方法里使用context.Response.Wr ...

  7. php 清除数据表中所有数据库,清除一个数据库里所有表的数据

    如果需要清除一个数据库里所有表的数据,则可用下面命令: exec sp_MSforeachtable TRUNCATE TABLE ? ******************************** ...

  8. 取某个字段的前几位 php,php中的一个中文字符串截取函数

    php中的一个中文字符串截取函数 PHP代码: ---------------------------------------------------------------------------- ...

  9. 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型

    数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型 我们上次谈到用最大熵模型可以将各种信息综合在一起.我们留下一个问题没有回答,就是如何构造最大熵模型.我们已经所有的最大熵模型都 ...

最新文章

  1. 【car】购买新能源电动汽车的几个注意事项
  2. ImageLoader must be init with configuration before using 错误解决方法
  3. appium--每次启动会重新安装的问题(没试过)
  4. java决策树_【Java】决策树介绍和使用
  5. java public 继承_java继承问题
  6. 向一个数组中插入元素
  7. python中matlab函数图像处理,MATLAB图像处理--同态滤波(代码及示例)
  8. 重载与覆盖(java)
  9. 用户输入和命令行参数
  10. 【笔试/面试】—— 二叉树的深度和宽度
  11. python3.7安装步骤-Windows下Python 3.7.0的安装步骤,Python370
  12. 使用easy_install安装BeautifulSoup——Python
  13. 厉害了!为了干掉 HTTP ,Spring团队又开源 nohttp 项目!
  14. 数字图像处理第三版4.8.4例子GLPF高斯低通滤波器matlab程序
  15. 【UCOSIII操作系统】硬件初始化篇(1)硬件初始化以及开始运行系统
  16. php将文字生成图片显示,php生成文字图片效果
  17. xp系统查计算机设备型号,xp电脑设备型号怎么查询
  18. 定制Hexo-NexT的个性化博客
  19. 前端HTML+CSS之网页排版(三)
  20. 招聘:赴微软工作SharePoint技术专家(V-,北京)

热门文章

  1. Redis集群的搭建(具体步骤)
  2. 表示我想你的代码java_如何编写可怕的Java代码?
  3. linux 隐藏脚本运行,linux – 为什么在运行ls时隐藏此文件?
  4. C语言二分法求最小值解,C语言用二分法求方程的近似解的方法
  5. php aes 128位加密,php实现AES 128位加密的相关操作技巧分享
  6. 去掉a标签下划线_条码软件如何修改条码标签的字体格式
  7. centos图形化桌面的文件在哪_Windows 远程连接 CentOS 7 图形化桌面
  8. 八千字硬核长文梳理Linux内核概念及学习路线
  9. 电脑亮度多少对眼睛好_鲁大师性能测试多少分算好电脑?
  10. linux数据库实例开机启动不了,linux下Oracle数据库实例开机自启动设置