• 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();
            }
  • 相关阅读:
    圆角矩形“RoundRectShape”使用详解
    SVGImageView
    actionbarsherlock示例
    [百度]服务号和订阅号的区别
    [学习]ulimit
    [Cnbeta]BAT财报对比
    【百度】大型网站的HTTPS实践(三)——HTTPS对性能的影响
    【百度】大型网站的HTTPS实践(二)——HTTPS加密算法介绍
    【百度】大型网站的HTTPS实践(一)——HTTPS协议和原理
    [华商韬略] 拉里·埃里森(Larry Elison) 的传奇人生
  • 原文地址:https://www.cnblogs.com/sexintercourse/p/8719676.html
Copyright © 2020-2023  润新知