OOIII/

C#图片压缩算法

private void VaryQualityLevel(){    // Get a bitmap.    Bitmap bmp1 = new Bitmap(@"c:\TestPhoto.jpg");    ImageCodecInfo jgpEncoder = GetEncoder(ImageFormat.Jpeg);    // Create an Encoder object based on the GUID    // for the Quality parameter category.    System.Drawing.Imaging.Encoder myEncoder =        System.Drawing.Imaging.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.    EncoderParameters myEncoderParameters = new EncoderParameters(1);    EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 50L);    myEncoderParameters.Param[0] = myEncoderParameter;    bmp1.Save(@"c:\TestPhotoQualityFifty.jpg", jgpEncoder, myEncoderParameters);    myEncoderParameter = new EncoderParameter(myEncoder, 100L);    myEncoderParameters.Param[0] = myEncoderParameter;    bmp1.Save(@"c:\TestPhotoQualityHundred.jpg", jgpEncoder, myEncoderParameters);    // Save the bitmap as a JPG file with zero quality level compression.    myEncoderParameter = new EncoderParameter(myEncoder, 0L);    myEncoderParameters.Param[0] = myEncoderParameter;    bmp1.Save(@"c:\TestPhotoQualityZero.jpg", jgpEncoder, myEncoderParameters);}private ImageCodecInfo GetEncoder(ImageFormat format){    ImageCodecInfo[] codecs = ImageCodecInfo.GetImageDecoders();    foreach (ImageCodecInfo codec in codecs)    {        if (codec.FormatID == format.Guid)        {            return codec;        }    }    return null;}

留下一条评论

暂无评论