zoukankan      html  css  js  c++  java
  • C#图片裁切,生成新图片

            /// 图片裁剪,生成新图,保存在同一目录下,名字加_new,格式1.png  新图1_new.png
            /// </summary>
            /// <param name="picPath">要修改图片完整路径</param>
            /// <param name="x">修改起点x坐标</param>
            /// <param name="y">修改起点y坐标</param>
            /// <param name="width">新图宽度</param>
            /// <param name="height">新图高度</param>
            public static void cutPicture(String picPath, int x, int y, int width, int height)
            {
                //图片路径
                String oldPath = picPath;
                //新图片路径
                String newPath = System.IO.Path.GetExtension(oldPath);
                //计算新的文件名,在旧文件名后加_new
                newPath = oldPath.Substring(0, oldPath.Length - newPath.Length) + "_new" + newPath;
                //定义截取矩形
                System.Drawing.Rectangle cropArea = new System.Drawing.Rectangle(x, y, width, height);
                //要截取的区域大小
                //加载图片
                System.Drawing.Image img = System.Drawing.Image.FromStream(new System.IO.MemoryStream(System.IO.File.ReadAllBytes(oldPath)));
                //判断超出的位置否
                if ((img.Width < x + width) || img.Height < y + height)
                {
                    MessageBox.Show("裁剪尺寸超出原有尺寸!");
                    img.Dispose();
                    return;
                }
                //定义Bitmap对象
                System.Drawing.Bitmap bmpImage = new System.Drawing.Bitmap(img);
                //进行裁剪
                System.Drawing.Bitmap bmpCrop = bmpImage.Clone(cropArea, bmpImage.PixelFormat);
                //保存成新文件
                bmpCrop.Save(newPath);
                //释放对象
                img.Dispose();
           bmpCrop.Dispose(); }
  • 相关阅读:
    打造好团队
    为什么要先订一个小目标
    什么叫上层次?
    信息系统的数据大分类
    系统有问题基本出在数据库上,web层无状态
    20155201 预备作业02
    预备作业01:你期望的师生关系是什么?
    laravel 获取当前路由 和url
    laravel -admin 禁止某一行删除
    laravel-admin 密码加密
  • 原文地址:https://www.cnblogs.com/qiantao/p/9834650.html
Copyright © 2011-2022 走看看