zoukankan      html  css  js  c++  java
  • C#生成缩略图不清晰模糊问题的解决方案!

    之前网上找了个生成缩略图的代码,改了改直接用了。问题来了,等比例缩略图时总是发现左边、上边的边线大概有一像素的白边,领导不乐意了,那咱就改吧。图片放大了才发现,那个好像是渐变的颜色,晕,这样的功能领导肯定是接受不了的,图片画质都变了。网上搜了下,解决方案来了,挺多的。我就摘抄下,大家参考下,省的费劲去搜索了!

    //取得图片大小
                var destRect = new Size(Convert.ToInt32(w), Convert.ToInt32(h));//指定所绘制图像的位置和大小
                var srcRect = new Size(Convert.ToInt32(sw), Convert.ToInt32(sh));//指定 image 对象中要绘制的部分
                var bitmap = new Bitmap(image, destRect);
                //新建一个画板
                var g = Graphics.FromImage(bitmap);
    
                //设置高质量插值法
                g.InterpolationMode = InterpolationMode.HighQualityBicubic;
                //设置高质量,低速度呈现平滑程度
                g.SmoothingMode = SmoothingMode.HighQuality;
                g.CompositingQuality = CompositingQuality.HighQuality;
                //清空一下画布
                g.Clear(Color.White);
                //防止出现渐变
                var imgAtt = new ImageAttributes();
                imgAtt.SetWrapMode(WrapMode.TileFlipXY);
                //在画板的指定位置画图
                g.DrawImage(image, new Rectangle(0, 0, destRect.Width, destRect.Height), x, y, srcRect.Width, srcRect.Height,
                            GraphicsUnit.Pixel, imgAtt);
                //保存高清晰度的缩略图
                bitmap.Save(fileFullPath, GetImageFormat(Path.GetExtension(fileFullPath)));
                g.Dispose();
                bitmap.Dispose();

    红色部分就是解决问题的关键所在。

    打完收工!

  • 相关阅读:
    Java 5,6,7,8,9,10,11新特性
    LINUX中如何查看某个端口是否被占用
    Springboot项目全局异常统一处理
    面试笔记
    springboot几篇文章
    Mysql索引会失效的几种情况分析
    数组变成集合的方法
    集合变成数组的方法 Collections里面的方法
    list类里面的东西加锁 (手动加锁方法)
    Collections里面的一些方法
  • 原文地址:https://www.cnblogs.com/rober0371/p/3368079.html
Copyright © 2011-2022 走看看