http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 12933|回复: 9
打印 上一主题 下一主题

[C#语言基础] C#生成高清缩略图的方法

[复制链接]
跳转到指定楼层
楼主
发表于 2013-12-31 09:36:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
[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;
    }


调用方法
[C#] 纯文本查看 复制代码
  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);
        }

本帖被以下淘专辑推荐:



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
沙发
 楼主| 发表于 2013-12-31 09:38:31 | 只看该作者
这个方法主要为了生成高清缩略图片,如果是普通的不建议大家使用,因为生成的图片比较大一些。当然肯定会原图要小的多
板凳
发表于 2013-12-31 14:54:20 | 只看该作者
受教了,学习中……
地板
发表于 2014-1-1 14:11:38 | 只看该作者
强烈支持楼主ing……
5
发表于 2014-5-7 11:13:54 | 只看该作者
如果换做用普通的Thumbnail Creator生成的缩略图与站长分享的这种generate thumbnail的方法,生成出来的缩略图效果一致吗?相比较而言,哪种更为方便快捷一点呢?

6
发表于 2015-1-6 15:27:20 | 只看该作者
本帖最后由 Cheungxin 于 2015-1-6 15:28 编辑

目前我需要就是兼容.net framework的生成高清缩略图的程序,这个“C#生成高清缩略图的方法”帮了我许多。
7
发表于 2015-1-12 23:26:42 | 只看该作者
来学习一下
8
发表于 2015-1-20 15:28:37 | 只看该作者
看过帖子回复一下是个好习惯
9
发表于 2016-1-14 10:37:41 | 只看该作者
万能的苏飞论坛,太有用了,谢谢
10
发表于 2016-6-2 14:03:35 | 只看该作者
受教了,正在学习中
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-19 05:23

© 2014-2021

快速回复 返回顶部 返回列表