スキャンした画像のメタデータの一部を変更するアプリケーションを使用しています。GIMP コンソールで画像の境界線を自動的にトリミングする前処理を追加するまで、これはうまく機能していました。
EXIF データの複数のフィールドを変更しましたが、これは引き続き正しく機能します。しかし、IPTC フィールドを変更しようとすると、「プロパティが壊れています」というエラーが表示されます。
トリミングされていない画像については、問題なく EXIF と IPTC を変更できます。トリミングされた画像については、問題なく EXIF を変更できます。IPTC 情報を変更すると、例外が発生します。
私は何か間違ったことをしていますか?または、画像の EXIF/IPTC データを変更する方法に関する他の解決策はありますか?
他の投稿にあるように、画像から BitmapMetadata を抽出します。そして、編集できるようにクローンします。その後、追加情報を追加できるようにパディングを追加します。
私が見る限り、メタデータに問題はないようです。また、IrfanView や EXIFTool などの他のツールでは、IPTC の見出しを正しく変更できます。
問題が表示されるテスト プロジェクトを作成しました。トリミング前後のサンプル画像が含まれています。
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
System.ArgumentException: プロパティが壊れています。---> System.Runtime.InteropServices.COMException: ビットマップ プロパティのサイズが無効です。(HRESULT からの例外: 0x88982F42)