在加载和存储图像时,我的代码可以工作很长时间,我发现我有一个图像破坏了这个代码:
const string i1Path = @"c:\my\i1.jpg";
const string i2Path = @"c:\my\i2.jpg";
var i = Image.FromFile(i1Path);
i.Save(i2Path, ImageFormat.Jpeg);
例外是:
System.Runtime.InteropServices.ExternalException 发生
GDI+ 中出现一般错误。
在 System.Drawing.Image.Save(字符串文件名,ImageCodecInfo 编码器,EncoderParameters encoderParams)
在 System.Drawing.Image.Save(字符串文件名,ImageFormat 格式)
在 ...
据我所知,这张照片没有什么特别之处。它的大小约为 250 像素,可以在 Windows Image Viewer 或 Paint.NET 中打开:
(由于上图,上传到 Stack Overflow 后就没有报错了,我把原图放在这里了)
我发现在调用Save
方法时,目标图像文件是用零字节创建的。
我真的对导致错误的原因一无所知。
我的问题:
- 你能想到什么特殊的东西会阻碍 .NET 保存图像吗?
- 有没有办法(除了恐慌)来缩小这些错误的范围?