zoukankan      html  css  js  c++  java
  • asp.net 图片质量压缩(不改变尺寸)


    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();
    }

  • 相关阅读:
    消失的 unittest.makeSuite()
    自定义错误信息在各个浏览器表现不同
    “创建Web应用程序”与“创建Web网站”的区别
    如何将Notepad++改造成Python开发工具
    64位服务器IIS不能识别32位framework版本。IIS没有Asp.net切换界面的解决办法。
    C++文件流,读入数据注意
    Chessboard(二分图完备匹配)
    courses二分图最大匹配
    Linux BASH Shell文件名匹配/输出重定向
    LinuxShell一些很少用到却很有用的指令
  • 原文地址:https://www.cnblogs.com/ainidewen/p/4556543.html
Copyright © 2011-2022 走看看