所以我试图在代码中将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);
}
答案 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后端不喜欢它,它需要很长时间。 我讨厌非描述性的例外。
哦,谢谢大家的时间。