• 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);

      }

  • 相关阅读:
    【算法笔记】B1015 德才论
    【算法笔记】B1014 福尔摩斯的约会
    【算法笔记】B1013 数素数
    【算法笔记】B1012 数字分类
    【算法笔记】B1011 A+B 和 C
    【算法笔记】B1010 一元多项式求导
    【算法笔记】B1009 说反话
    【算法笔记】B1008 数组元素循环右移问题
    SSLOJ 1336.膜拜神牛
    SSLOJ 1335.蛋糕切割
  • 原文地址:https://www.cnblogs.com/wwy224y/p/3533296.html
Copyright © 2020-2023  润新知