经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » C# » 查看文章
C#图片裁切,生成新图片
来源:cnblogs  作者:38度6  时间:2018/10/25 9:37:24  对本文有异议
  1. /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png 新图1_new.png
  2. /// </summary>
  3. /// <param name="picPath">要修改图片完整路径</param>
  4. /// <param name="x">修改起点x坐标</param>
  5. /// <param name="y">修改起点y坐标</param>
  6. /// <param name="width">新图宽度</param>
  7. /// <param name="height">新图高度</param>
  8. public static void cutPicture(String picPath, int x, int y, int width, int height)
  9. {
  10. //图片路径
  11. String oldPath = picPath;
  12. //新图片路径
  13. String newPath = System.IO.Path.GetExtension(oldPath);
  14. //计算新的文件名,在旧文件名后加_new
  15. newPath = oldPath.Substring(0, oldPath.Length - newPath.Length) + "_new" + newPath;
  16. //定义截取矩形
  17. System.Drawing.Rectangle cropArea = new System.Drawing.Rectangle(x, y, width, height);
  18. //要截取的区域大小
  19. //加载图片
  20. System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(System.IO.File.ReadAllBytes(oldPath)));
  21. //判断超出的位置否
  22. if ((img.Width < x + width) || img.Height < y + height)
  23. {
  24. MessageBox.Show("裁剪尺寸超出原有尺寸!");
  25. img.Dispose();
  26. return;
  27. }
  28. //定义Bitmap对象
  29. System.Drawing.Bitmap bmpImage = new System.Drawing.Bitmap(img);
  30. //进行裁剪
  31. System.Drawing.Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
  32. //保存成新文件
  33. bmpCrop.Save(newPath);
  34. //释放对象
  35. img.Dispose();
           bmpCrop.Dispose();
  36. }

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号