我正在尝试以指定的编码质量保存位图jpg格式。但是,当调用保存方法时,我遇到了异常(“参数无效”)。
如果在bmp.save中省略最后两个参数,则可以正常工作。
EncoderParameters eps = new EncoderParameters(1);
eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 16);
ImageCodecInfo ici = GetEncoderInfo("image/jpeg");
string outfile = outputpath + "\\" + fileaddition + sourcefile.Name;
bmp.Save(outfile,ici,eps );
bmp.Dispose();
image.Dispose();
return true;
}
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;
}
}
谢谢你
int
、uint
、long
、ulong
。” 它永远不是byte
。或者这可能是 Microsoft C# 编译器的一个 bug? - Konrad Rudolph