2009-05-18 8 views
1

これを試したJPEGの約1%でBitmapMetadata.GetQuery( "/ app13/irb/8bimiptc/iptc")を呼び出すと、次の例外が発生します。これを引き起こしている可能性がありますし、私はそれを修正するために何ができますか? (私はグーグルで試してみましたが、私は一つだけ、関連する結果がなく、無応答と同じ質問をして見つけることができます。).NETのJPEGからIPTCフィールドを読み取るときにエラーが発生しました

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 
+0

あなたはJPEGを投稿できますそれは私がlooできるようにこの問題がありますそれにk? –

+0

残念ながら、一部のIPTCデータが著作権で保護されているため、例を掲載することはできません。編集した場合、例外は再現されません。 – Liam

答えて

1

私の推測をPhotoshopのIRBデータがヘッダーよりも長いことです。

は、少なくともこれは私がExiv2のソースの上に(ライン107)をスキミングによって差し引くことができるものである。

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

が、Cの私の理解は良いことではありません! :)

+0

ありがとう、私はヘッダーにそのようなエラーを修正するためのツールがあるのだろうか? – Liam

+0

私はこのエラーをもう一度見つけて、グーグルでそれを見つけ、私の古い質問をここで見つけました。今回はtry..catchブロックを追加し、問題のファイルの名前を記録し、XnViewで開き、編集/メタデータ/ IPTCデータの編集/書き込みを選択して修正しました。 – Liam

+0

大きなバッチの画像に対してこれを行うための提案はありますか? – Liam

1

エラー0x88982F05は、WIC による正規の値の範囲外のエラーです。したがって、あなたは簡単に処理できます。また、これはIPTCクエリ文字列の唯一の問題ではないかもしれません。ただ、exiv2によって報告された情報に基づいて

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

優雅なフォールオーバーに{}キャッチ{}このように、このセクションをしようと、PhotoshopのIRB情報の大きさは、メタデータの全体のサイズと矛盾しています。

メッセージを無視したい場合は、特定のCOM例外を無視または報告するだけで例外の種類を特定します。

そこツール/リソースのカップル:

関連する問題