zoukankan      html  css  js  c++  java
  • 图片质量压缩

    今天图片上传的时候,一张图片宽高有4000*7000左右(只有1.3M左右),然后按照以前的方法,生成了100多兆的图

    然后,问题就来了

    找了老半天,虽然刚开始也有百度到    EncoderParameter p类似这个的,但是那时候没注意,总觉得不是所需要的,感觉是其他保存形式

    后来实在是没找到什么解决办法,就干脆拿来试一试

        EncoderParameter p;
                    EncoderParameters ps;
                    ps = new EncoderParameters(1);
                    long[] qualityArray = new long[1];
                    qualityArray[0] = request.Quality;
                    p = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qualityArray);
                    ps.Param[0] = p;
    
                    image.Save(path, ImageUtil.GetCodecInfo("image/jpeg"), ps);
    
     public static ImageCodecInfo GetCodecInfo(string mimeType)
            {
                ImageCodecInfo[] CodecInfo = ImageCodecInfo.GetImageEncoders();
                foreach (ImageCodecInfo ici in CodecInfo)
                {
                    if (ici.MimeType == mimeType)
                    {
                        return ici;
                    }
                }
                return null;
            }
    

    开始直接拿了网上的,结果总是不对,要不参数错误,要不就提示null

    总不得其然

    问了问同事,拿了以前项目的代码才发现是

     long[] qualityArray = new long[1];
                    qualityArray[0] = request.Quality;
    

     这个参数拿的是long[]数据,当然有重载,long直接一个值的好像也是有的,没试。

    设置后,图片的大小就变得超级小了。

    即使设置了100的压缩质量,也是比原图小的,至于这个设置就不是特别清楚了。

    总的来说,解决了问题,就不用这么头疼了。

  • 相关阅读:
    百度翻译api 实现简易微信翻译小程序
    Vuejs 基础与语法
    ES6 之 let / const
    browsersync 插件
    面向对象 实现轮播组件
    PyV8在服务端运行自动崩溃问题
    Nginx详解(正向代理、反向代理、负载均衡原理)
    Windows下用Nginx配置遇到的问题
    vuex 数据绑定
    如何使用Photoshop批量扫描保存文档
  • 原文地址:https://www.cnblogs.com/danlis/p/5845907.html
Copyright © 2011-2022 走看看