为了账号安全,请及时绑定邮箱和手机立即绑定

Reset Image Size 2

标签:
JavaScript

你会留意到Insus.NET在前一次的写了Reset Image Size的功能http://www.cnblogs.com/insus/articles/1909037.html,这个功能是在图片显示时去做图片缩略,有网友向Insus.NET提及,这样做有点不好,就是每run一次,系统就要缩略生成一次,这样会有损性能,希望能改善一下。为了改善性能,哪只有在图片上传时或在图片管理时,实现一个功能保存一份缩略图在目录中。

下面是代码(部分),请参考:

View Code  System.Drawing.Image imgOriginal = System.Drawing.Image.FromFile(originalImagePath);
        //获取原图片的的宽度与高度
        int originalWidth = imgOriginal.Width;
        int originalHeight = imgOriginal.Height;        

       //定义缩略图片宽度和高度  
        int thumbnailWidth, thumbnailHeight;

        //如果原图片的宽度与高度都小于缩略图片尺寸
        if (originalWidth < thumbnailSize && originalHeight < thumbnailSize)
        {
            thumbnailWidth = originalWidth;  //宽度等于原宽度
            thumbnailHeight = originalHeight;//高度等于原高度
        }
        //如果原图片宽度大于原图片的高度              
        else if (originalWidth > originalHeight)
        {
            thumbnailWidth = thumbnailSize;  //宽度等于缩略图片尺寸
            thumbnailHeight = originalHeight * thumbnailSize / originalWidth;  //高度做相应比例缩小
        }
        //如果原图片高度大于原图片的宽度
        else
        {
            thumbnailWidth = originalWidth * thumbnailSize / originalHeight; //宽度做相应比例缩小
            thumbnailHeight = thumbnailSize; //高度等于缩略图片尺寸
        }

        System.Drawing.Bitmap bitmap = new System.Drawing.Bitmap(thumbnailWidth, thumbnailHeight);
        System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap);

        //设置缩略图片质量
        graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
        graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
        graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
        
        graphics.DrawImage(imgOriginal, 0, 0, thumbnailWidth, thumbnailHeight);
       
        // 保存缩略图片
        bitmap.Save(imageSavePath);

 

 

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消