我正在为网站开发图像上传功能,并且在上传这些图像时对它们进行一些处理,因此我正在使用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+ 中的通用错误”转变为有用且有意义的错误方面具有重要价值。