源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式

  • 时间:2022-04-15 18:23 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
/// <summary>         /// 生成缩略图         /// </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, 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();             }         }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部