我正在尝试调整图像的大小,如果它比x宽,以使其适合Word文档,但我收到以下错误消息:
System.Drawing.dll中发生了'System.ArgumentNullException'类型的异常,但未在用户代码中处理
附加信息:值不能为空。
using (MemoryStream ms = new MemoryStream())
{
System.Drawing.Image image = System.Drawing.Image.FromFile(physicalPath);
System.Drawing.Image resizedImage;
if (image.Width > 650)
{
double multiplier = image.Width/650.0;
int newWidth = 650;
int newHeight = (int) (image.Height/multiplier);
resizedImage = (System.Drawing.Image)new Bitmap(image, new Size(newWidth,newHeight));
}
else
{
resizedImage = image;
}
image.Dispose();
resizedImage.Save(ms, resizedImage.RawFormat);
}
执行resizedImage.Save(..)方法时出错。我调试了代码,resizedImage和ms以及resizedImage的RawFormat属性都不为null。我做错了什么?
这适用于宽度小于或等于650的图像。
答案 0 :(得分:1)
除非文件来自现有文件,否则您无法使用RawFormat
进行保存(resizedImage
是内存中的位图,与image
不同)。
使用特定格式进行保存(例如:ImageFormat.Png
或ImageFormat.Jpeg
),或使用image.RawFormat
代替resizedImage.RawFormat
,如果您想使用原始&#保存39; s文件格式