.net C#生成缩略图实现思路分解_.Net教程_Sublime_青云站长教程网
欢迎来到站长教程网!
  • 秒到短信接口 免费试用
  • 微信支付宝接口 秒结算
  • 中文网站排名|申请加入
  • 搜索引擎全站查询
  • 查询移动网站权重数据
  • 海外主机 台湾公司直销
  • Sublime

    当前位置:主页 > 软件教程 > Sublime >

    .net C#生成缩略图实现思路分解_.Net教程

    时间:2019-07-21|栏目:Sublime|点击:
  • 推荐:c#生成图片缩略图的类(2种实现思路)
    4个重载方法,有直接返回Image对象的,有生成缩略图,并且保存到指定目录的,具体祥看下文

    复制代码 代码如下:www.mb5u.com
    /// 生成缩略图
    /// </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#生成图片缩略图的类(2种实现思路)_.Net教程

    栏    目:Sublime

    下一篇:.net控件dropdownlist动态绑定数据具体过程分解_.Net教程

    本文标题:.net C#生成缩略图实现思路分解_.Net教程

    本文地址:http://www.jh-floor.com/ruanjianjiaocheng/Sublime/8005.html

    广告投放 | 联系我们 | 版权申明

    重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

    如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

    联系QQ:888888 | 邮箱:888888#qq.com(#换成@)

    Copyright © 2002-2017 青云站长教程网 版权所有 琼ICP备xxxxxxxx号