C#生成缩略图的函数,可直接调用

C#生成缩略图的函数,可直接调用,第1张

概述C#生成缩略图函数,可直接调用

下面是内存溢出 jb51.cc 通过网络收集整理的代码片段。

内存溢出小编现在分享给大家,也给大家做个参考。

  /// <summary>  /// 生成缩略图 /// 转自:http://www.shareJs.com  /// </summary>  /// <param name="originalimagePath">源图路径(物理路径)</param>  /// <param name="thumbnailPath">缩略图路径(物理路径)</param>  /// <param name="wIDth">缩略图宽度</param>  /// <param name="height">缩略图高度</param>  /// <param name="mode">生成缩略图的方式</param>    public static voID Makethumbnail(string originalimagePath,string thumbnailPath,int wIDth,int height,string mode)  {      Image originalimage = Image.Fromfile(originalimagePath);              int towIDth = wIDth;      int toheight = height;          int x = 0;      int y = 0;      int ow = originalimage.WIDth;      int oh = originalimage.Height;              switch (mode)      {                case "HW"://指定高宽缩放(可能变形)                            break;          case "W"://指定宽,高按比例                                toheight = originalimage.Height * wIDth/originalimage.WIDth;              break;          case "H"://指定高,宽按比例              towIDth = originalimage.WIDth * height/originalimage.Height;                                 break;                case "Cut"://指定高宽裁减(不变形)                            if((double)originalimage.WIDth/(double)originalimage.Height > (double)towIDth/(double)toheight)              {                  oh = originalimage.Height;                  ow = originalimage.Height*towIDth/toheight;                  y = 0;                  x = (originalimage.WIDth - ow)/2;              }              else              {                  ow = originalimage.WIDth;                  oh = originalimage.WIDth*height/towIDth;                  x = 0;                  y = (originalimage.Height - oh)/2;              }              break;                            default :              break;      }                //新建一个bmp图片      Image bitmap = new System.Drawing.Bitmap(towIDth,toheight);        //新建一个画板      Graphics g = system.drawing.graphics.FromImage(bitmap);        //设置高质量插值法      g.InterpolationMode = System.Drawing.drawing2d.InterpolationMode.High;        //设置高质量,低速度呈现平滑程度      g.SmoothingMode = System.Drawing.drawing2d.SmoothingMode.HighQuality;        //清空画布并以透明背景色填充      g.Clear(color.transparent);              //在指定位置并且按指定大小绘制原图片的指定部分      g.DrawImage(originalimage,new Rectangle(0,towIDth,toheight),new Rectangle(x,y,ow,oh),GraphicsUnit.Pixel);        try      {                    //以jpg格式保存缩略图          bitmap.Save(thumbnailPath,System.Drawing.Imaging.ImageFormat.Jpeg);      }      catch(System.Exception e)      {          throw e;      }      finally      {          originalimage.dispose();          bitmap.dispose();                                g.dispose();      }  }

以上是内存溢出(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

总结

以上是内存溢出为你收集整理的C#生成缩略图的函数,可直接调用全部内容,希望文章能够帮你解决C#生成缩略图的函数,可直接调用所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1238373.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存