1

これを試した JPEG の約 1% で BitmapMetadata.GetQuery("/app13/irb/8bimiptc/iptc") を呼び出すと、次の例外が発生します。何が原因で、どうすれば修正できますか? (グーグルを試しましたが、同じ質問をしているが答えがない関連する結果が1つしか見つかりません。)

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
4

3 に答える 3

1

エラー0x88982F05は、WICによる通常の範囲外のエラーであるため、簡単に処理できます。また、これがIPTCクエリ文字列の唯一の問題ではない可能性があります。このセクションを{}キャッチ{}して、優雅なフォールオーバーを試してみてください

if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try { 
... }
catch {}
于 2009-06-01T15:42:18.497 に答える
1

私の推測では、Photoshop IRB データがヘッダーで指定されているよりも長いのです。

少なくとも、これは Exiv2 のソース (107 行目) をざっと調べて推測できることです。

http://dev.exiv2.org/repositories/entry/exiv2/trunk/src/jpgimage.cpp?rev=1146

しかし、私の c の理解はあまりよくありません! :)

于 2009-05-28T20:26:05.477 に答える
0

exiv2 によって報告された情報に基づくと、Photoshop IRB 情報のサイズは、メタデータの全体的なサイズと矛盾しています。

メッセージを無視したい場合は、キャッチする例外の種類をより具体的に示します。その特定の COM 例外のみを無視または報告します。

そこにいくつかのツール/リソースがあります:

于 2009-06-01T18:25:27.647 に答える