• C#生成高清缩略图的方法


       /// <summary>
       /// 为图片生成缩略图  
       /// </summary>
       /// <param name="phyPath">原图片的路径</param>
       /// <param name="width">缩略图宽</param>
       /// <param name="height">缩略图高</param>
       /// <returns></returns>
       public System.Drawing.Image GetThumbnail(System.Drawing.Image image, int width, int height)
       {
           Bitmap bmp = new Bitmap(width, height);
           //从Bitmap创建一个System.Drawing.Graphics
           System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(bmp);
           //设置 
           gr.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
           //下面这个也设成高质量
           gr.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
           //下面这个设成High
           gr.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
           //把原始图像绘制成上面所设置宽高的缩小图
           System.Drawing.Rectangle rectDestination = new System.Drawing.Rectangle(0, 0, width, height);
     
           gr.DrawImage(image, rectDestination, 0, 0, image.Width, image.Height, GraphicsUnit.Pixel);
           return bmp;
       }

    调用方法

      HttpPostedFile file = photoFile.PostedFile;
            if (!file.ContentType.Contains("image"))
            {
          return "照片格式不合法";
            }
            string ext = Path.GetExtension(file.FileName).ToLower();
            if (ext != ".jpg" && ext != ".gif" && ext != ".png" && ext != ".jpeg")
            {
          return "请您上传jpg、gif、png图片";
            }
            if (file.ContentLength > 5 * 1024 * 1024)
            {
          return "请您上传512字节内的图片";
            }
            string newName = Guid.NewGuid().ToString();
            string tempPath = "upload/";
            string img = tempPath + newName + ext;
            string filePath = Server.MapPath(img);
            if (!Directory.Exists(tempPath))
            {
                Directory.CreateDirectory(tempPath);
            }
            using (System.Drawing.Image originalImage = System.Drawing.Image.FromStream(file.InputStream))
            {
                GetThumbnail(originalImage, 504, 374).Save(filePath);
            }
  • 相关阅读:
    一行命令搞定node.js 版本升级
    doesn't contain a valid partition table 解决方法
    debian kill 进程等命令
    FastDFS配置说明(中英文)
    FastDFS问题汇总
    FastDFS常见命令
    FastDFS安装配置手册
    windows 与Linux 互传文件
    FtpClient中文乱码问题解决
    windows 配置host
  • 原文地址:https://www.cnblogs.com/vaevvaev/p/6923990.html
Copyright © 2020-2023  润新知