1

我正在为网站开发图像上传功能,并且在上传这些图像时对它们进行一些处理,因此我正在使用System.Drawing.Image和其他相关类。

最终,我将位图数据加载到 中MemoryStream,从那里获取我的System.Drawing.Image然后调用Image.Save(string path, ImageFormat format).

我发现一些 JPEG 会抛出一个System.Runtime.InteropServices.ExternalException永远有用的错误消息

GDI+ 中出现一般错误。

检查文档中的Image.Save状态ExternalException会在何时抛出

图像以错误的图像格式保存。
-或 -
图像已保存到创建它的同一文件中。

图像是有效的 JPEG;Preview、Paint、Paint.NET、Photoshop、Chrome 和 IE 都可以毫无怨言地打开文件。我的代码甚至毫无怨言地打开了文件。

我试过保存有和没有指定的文件,ImageFormat但我得到了相同的结果。

该代码适用于加载其他 JPEG 文件。

有没有办法获得有关为什么抛出异常的更多信息?


更新

我担心我们可能会偏离主题(主题是,是否有可能从 GDI+ ExternalException 中得到一个有用的错误)所以我不会发布我遇到的错误的重现,因为最终我不是要求修复该错误。

我认为它们在寻找一种方法来从近乎无用的“GDI+ 中的通用错误”转变为有用且有意义的错误方面具有重要价值。

4

0 回答 0