ASP.NET\MVC 解决C#上传图片质量下降,图片模糊,水印有杂点的问题

本文分享了一种提升图片上传质量及水印效果的方法,通过调整图片保存参数,实现上传图片质量无损,水印清晰无杂点。具体涉及编码参数、图像压缩质量和编码信息的设置。

对图片处理这一块不是很懂,自己写不出来,这些年一直没有停止找一个上传图片质量不下降,加水印不会导致模糊和水印周边产生杂点的代码。

网上基本上99%的代码处理图片质量都是下面这两句:

//设置质量
//gWater.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
//gWater.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

我明确告诉你,球鸡儿的卵用都没得!!!!!!!!!

今天在一个论坛回帖中看到一个回帖:

bitPhoto.Save(Response.OutputStream, ImageFormat.Jpeg);
图像保存的问题,默认的质量是60%

            EncoderParameter p;
            EncoderParameters ps;

            ps = new EncoderParameters(1);

            p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 100L);
            ps.Param[0] = p;

            ImageCodecInfo ii = GetCodecInfo("image/jpeg");
            bitPhoto.Save(Response.OutputStream,ii,ps);

        private ImageCodecInfo GetCodecInfo(string mimeType)
        {
            ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
            foreach (ImageCodecInfo ici in CodecInfo)
            {
                if (ici.MimeType == mimeType) return ici;
            }
            return null;
        }

马上写一个水印测试,图片质量完全没有变化,文字水印周边没有一颗杂点,太感谢这位大哥了!

实际上就是在save的时候传入两个参数,我们之前做的上传基本上是直接save或者save的时候传个图片类型就完事儿了,问题就出在这里。

这里有篇图片上传的文章也不错:http://www.cnblogs.com/lonelyxmas/p/3563959.html

转载于:https://www.cnblogs.com/DoNetCShap/p/9956174.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值