• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    .net C#生成缩略图实现思路分解
    复制代码 代码如下:

    /// 生成缩略图
    /// /summary>
    /// param name="originalImagePath">源图路径/param>
    /// param name="thumbnailPath">缩略图路径/param>
    /// param name="width">缩略图宽度/param>
    /// param name="height">缩略图高度/param>
    /// param name="mode">生成缩略图的方式:HW指定高宽缩放(可能变形);W指定宽,高按比例 H指定高,宽按比例 Cut指定高宽裁减(不变形)/param>  
    /// param name="mode">要缩略图保存的格式(gif,jpg,bmp,png) 为空或未知类型都视为jpg/param>  
    public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode, string imageType)
    {
    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格式保存缩略图
    switch (imageType.ToLower())
    {
    case "gif":
    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Gif);
    break;
    case "jpg":
    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
    break;
    case "bmp":
    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Bmp);
    break;
    case "png":
    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Png);
    break;
    default:
    bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
    break;
    }
    }
    catch (System.Exception e)
    {
    throw e;
    }
    finally
    {
    originalImage.Dispose();
    bitmap.Dispose();
    g.Dispose();
    }
    }
    您可能感兴趣的文章:
    • C#创建缩略图操作类实例
    • C#简单生成缩略图的方法
    • C#获取视频某一帧的缩略图的方法
    • c#生成高清缩略图的二个示例分享
    • c#生成缩略图不失真的方法实例分享
    • c#生成图片缩略图的类(2种实现思路)
    • c#生成缩略图的实现方法
    • c#多图片上传并生成缩略图的实例代码
    • C# 生成高质量缩略图程序—终极算法
    • C#实现为一张大尺寸图片创建缩略图的方法
    上一篇:.net控件dropdownlist动态绑定数据具体过程分解
    下一篇:c#生成图片缩略图的类(2种实现思路)
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    .net C#生成缩略图实现思路分解 .net,生成,缩,略图,实现,