我正在创建一个函数,我传递一个Image,它将压缩图像并返回该图像对象。以下是我的代码:
public Image CompressImage(Image img)
{
ImageCodecInfo jpegCodec = null;
EncoderParameter imageQualitysParameter = new EncoderParameter(
System.Drawing.Imaging.Encoder.Quality, 50L);
ImageCodecInfo[] alleCodecs = ImageCodecInfo.GetImageEncoders();
EncoderParameters codecParameter = new EncoderParameters(1);
codecParameter.Param[0] = imageQualitysParameter;
for (int i = 0; i < alleCodecs.Length; i++)
{
if (alleCodecs[i].MimeType == "image/jpeg")
{
jpegCodec = alleCodecs[i];
break;
}
}
Image img1;
using (Stream memory = new MemoryStream())
{
img.Save(memory, jpegCodec, codecParameter);
img1 = Image.FromStream(memory);
memory.Close();
memory.Dispose();
}
return img1;
}
但是当我将它保存在内存流中时,它显示错误
EnexolImageConversionApp.exe中发生未处理的“System.ArgumentException”类型异常
附加信息:参数无效。
在线
img.Save(memory, jpegCodec, codecParameter);
答案 0 :(得分:0)
试用此代码 - 通过比较'api/getfolders.php' + Date.now()
和ImageCodecInfo
来选择正确的ImageFormat.Guid
:
ImageCodecInfo.FormatID
最后一步是从接收到的字节数组再次加载图像。 为了更好地理解问题,请提供异常详细信息,包括stacktrace。