.Net - 尝试将位图转换为JPEG时的参数异常

时间:2009-10-16 14:50:42

标签: .net image-processing jpeg

所以我试图在代码中将Bitmap图像转换为JPEG,并且我不断收到此错误:

  

未处理的类型异常   发生'System.ArgumentException'   System.Drawing.dll程序

     

附加信息:参数是   无效。

这是相关代码。所有路径都是正确的,EncoderParameter不是null,还有什么可能导致这个?

ImageCodecInfo codecInfo = null;

foreach( ImageCodecInfo codec in  ImageCodecInfo.GetImageEncoders())
{
    if (codec.MimeType != "image/jpeg") { continue; }

    codecInfo = codec;
    break;
}

EncoderParameters encoderParameters = new EncoderParameters();
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85);
using (Bitmap bitmapToConvert = new Bitmap(filePathIn))
{
    bitmapToConvert.Save(filePathOut, codecInfo, encoderParameters);
}

1 个答案:

答案 0 :(得分:4)

卫生署!

encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85);

应该是:

encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, 85L);
//OR
encoderParameters.Param[0] = new EncoderParameter(Encoder.Quality, (long)85);

在IL中,85保持为int,而GDI后端不喜欢它,它需要很长时间。 我讨厌非描述性的例外。

哦,谢谢大家的时间。

相关问题