zoukankan      html  css  js  c++  java
  • ASP.NETMVC 解决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

  • 相关阅读:
    nginx rewrite 伪静态重写学习笔记
    正则表达式相关知识
    rpm的含义
    find命令的使用
    chmod的运用方式
    [GO]数组的比较和赋值
    [GO]二维数组的介绍
    [GO]变量内存和变量地址
    [GO]给导入包起别名
    阿里云负载均衡SLB 七层https协议 nginx 获取真实IP
  • 原文地址:https://www.cnblogs.com/DoNetCShap/p/9956174.html
Copyright © 2011-2022 走看看