zoukankan      html  css  js  c++  java
  • C# 如何进行图像的压缩

    从网上找的非常有效。图片3M到500k

       private static ImageCodecInfo GetEncoderInfo(String mimeType)
            {
                int j;
                ImageCodecInfo[] encoders;
                encoders = ImageCodecInfo.GetImageEncoders();
                for (j = 0; j < encoders.Length; ++j)
                {
                    if (encoders[j].MimeType == mimeType)
                        return encoders[j];
                }
                return null;
            }
    
            /// <summary>
            /// 图片压缩(降低质量以减小文件的大小)
            /// </summary>
            /// <param name="srcBitmap">传入的Bitmap对象</param>
            /// <param name="destStream">压缩后的Stream对象</param>
            /// <param name="level">压缩等级,0到100,0 最差质量,100 最佳</param>
            public static void Compress(Bitmap srcBitmap, Stream destStream, long level)
            {
                ImageCodecInfo myImageCodecInfo;
                Encoder myEncoder;
                EncoderParameter myEncoderParameter;
                EncoderParameters myEncoderParameters;
    
                // Get an ImageCodecInfo object that represents the JPEG codec.
                myImageCodecInfo = GetEncoderInfo("image/jpeg");
    
                // Create an Encoder object based on the GUID
    
                // for the Quality parameter category.
                myEncoder = Encoder.Quality;
    
                // Create an EncoderParameters object.
                // An EncoderParameters object has an array of EncoderParameter
                // objects. In this case, there is only one
    
                // EncoderParameter object in the array.
                myEncoderParameters = new EncoderParameters(1);
    
                // Save the bitmap as a JPEG file with 给定的 quality level
                myEncoderParameter = new EncoderParameter(myEncoder, level);
                myEncoderParameters.Param[0] = myEncoderParameter;
                srcBitmap.Save(destStream, myImageCodecInfo, myEncoderParameters);
            }
    
            /// <summary>
            /// 图片压缩(降低质量以减小文件的大小)
            /// </summary>
            /// <param name="srcBitMap">传入的Bitmap对象</param>
            /// <param name="destFile">压缩后的图片保存路径</param>
            /// <param name="level">压缩等级,0到100,0 最差质量,100 最佳</param>
            public static void Compress(Bitmap srcBitMap, string destFile, long level)
            {
                Stream s = new FileStream(destFile, FileMode.Create);
                Compress(srcBitMap, s, level);
                s.Close();
            }
  • 相关阅读:
    37. VUE — webpack 基本使用
    36.VUE — 认识 Webpack 和 安装
    4. SpringBoot配置文件—YAML语法讲解
    3. IDEA 快速创建SpringBoot程序
    6. Maven 添加 镜像一些特性
    35. JS 模块化开发
    2. SPringBoot 解析HelloWorld 程序
    1. Maven 创建 SpringBoot项目 — HelloWorld — 我是踩了非常多的坑! 才写出来的 开学不顺 但是收获很多!!!
    34. VUE 的 编译作用域 以及 slot作用域插槽(获取组件作用域中的数据)
    【洛谷 3366】最小生成树_Kruskal
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/8719676.html
Copyright © 2011-2022 走看看