我得到以下的例外打电话时BitmapMetadata.GetQuery("/app13/irb/8bimiptc/iptc")对大约1%的Jpeg我已经试过这个。可能是什么造成这和我能做些什么来解决这个问题?(我们试图搜索,但我只能找到一个相关的结果问同样的问题,但没有回答。)

System.OverflowException:
The image data generated an overflow during processing. ---> 
System.Runtime.InteropServices.COMException (0x88982F05): 
Exception from HRESULT: 0x88982F05
--- End of inner exception stack trace ---
at System.Windows.Media.Imaging.BitmapMetadata.GetQuery(String query)
at MyProject.ImageRecord..ctor(String file)
in C:\MyProject\ImageRecord.cs:line 93
The image data generated an overflow during processing.

编辑:

exiv2 工具的报告:

Error: Invalid Photoshop IRB data size 6372
有帮助吗?

解决方案

我的猜测是Photoshop的IRB数据长于头指定。

至少这是我可以通过掠过Exiv2(线107)的源极扣除:

HTTP://dev.exiv2 .ORG /库/进入/ exiv2 /中继/ SRC / jpgimage.cpp?转= 1146

但我的C的理解是不是很好! :)

其他提示

错误0x88982F05只有正规值外的范围误差由WIC 因此,可以通过easely您处理。这也可能不是你与IPTC查询字符串唯一的问题。只是尝试{}赶上{}这部分像这样优美fallover

if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try { 
... }
catch {}

根据报告的信息exiv2的大小Photoshop IRB信息是不一致的整体尺寸的元数据。

如果你想忽略的信息,我将更为具体的类型的异常你抓住-只有忽略或报告,特别是COM例外。

一对夫妇的工具/资源:

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top