我有一个工作的应用程序,可以更改扫描图像的一些元数据。这个工作很好,直到我们添加了一个预处理来使用GIMP控制台自动裁剪图像的边框。
我们可以更改EXIF数据中的多个字段,这仍然是正确的。但如果我想更改任何IPTC字段,我会得到“属性已损坏”的错误。
对于未裁剪的图像,我可以更改EXIF和IPTC而没有任何问题。对于已裁剪的图像,我可以更改EXIF而没有任何问题。如果我在IPTC信息中更改任何内容,就会出现异常。
我做错了什么吗?或者是否有其他解决方案来更改图像的EXIF/IPTC数据?
如其他博客中所述,我从图像中提取BitmapMetadata。并且我克隆它以进行编辑。之后,我添加填充以便添加额外的信息。
据我所见,元数据看起来没有任何问题。在IrfanView或EXIFTool等其他工具中,我可以正确更改IPTC Headline。
我创建了一个测试项目来展示这个问题。附带有一个裁剪前后的示例图像。
我们可以更改EXIF数据中的多个字段,这仍然是正确的。但如果我想更改任何IPTC字段,我会得到“属性已损坏”的错误。
对于未裁剪的图像,我可以更改EXIF和IPTC而没有任何问题。对于已裁剪的图像,我可以更改EXIF而没有任何问题。如果我在IPTC信息中更改任何内容,就会出现异常。
我做错了什么吗?或者是否有其他解决方案来更改图像的EXIF/IPTC数据?
如其他博客中所述,我从图像中提取BitmapMetadata。并且我克隆它以进行编辑。之后,我添加填充以便添加额外的信息。
据我所见,元数据看起来没有任何问题。在IrfanView或EXIFTool等其他工具中,我可以正确更改IPTC Headline。
我创建了一个测试项目来展示这个问题。附带有一个裁剪前后的示例图像。
If isJpg Then
oMetaData.SetQuery("/app13/{ushort=0}/{ulonglong=61857348781060}/iptc/{str=Headline}", "TEST_HEADLINE")
Else
oMetaData.SetQuery("/ifd/{ushort=33723}/{str=Headline}", "TEST_HEADLINE")
End If
系统参数异常:属性已损坏。 ---> 系统运行时互操作性COMException:位图属性大小无效。 (HRESULT: 0x88982F42)