Errore durante la lettura campi IPTC da JPEG in .NET
Domanda
ottengo la seguente eccezione quando si chiama BitmapMetadata.GetQuery ( "/ app13 / IRB / 8bimiptc / IPTC") su circa l'1% del JPEG che ho provato questo su. Che cosa potrebbe causare questo e che cosa posso fare per risolvere il problema? (Ho provato Googling ma posso trovare solo uno dei risultati rilevanti che chiede la stessa domanda, ma con nessuna risposta.)
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.
Modifica:
I rapporti strumento exiv2
:
Error: Invalid Photoshop IRB data size 6372
Soluzione
La mia ipotesi è che i dati IRB Photoshop è più lungo del intestazione specifica.
Almeno questo è quello che posso dedurre dal sfiorando la fonte di Exiv2 (linea 107):
http: //dev.exiv2 .org / repository / ingresso / exiv2 / trunk / src / jpgimage.cpp? rev = 1146
Ma la mia comprensione di c non è buona! :)
Altri suggerimenti
Errore 0x88982F05 è solo normale errore valore-out-of-range da WIC Così può essere easely gestito da voi. Anche questo potrebbe non essere il vostro unico problema con IPTC stringhe di query. Basta provare {} catch {} questa sezione come questo per fallover graziosa
if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try {
... }
catch {}
Controlla questo post - fissa il mio problema
http://getsatisfaction.com/livelabs/topics/deepzoomtools_dll_exception_from_hresult_0x88982f05
In base alle informazioni riportate dal exiv2, la dimensione delle informazioni IRB di Photoshop non è coerente con la dimensione complessiva dei metadati.
Se si desidera ignorare i messaggi sarei più specifico nel tipo di eccezione si cattura -. Solo ignorare o segnalare quel particolare Eccezione COM
Un paio di strumenti / risorse là fuori: