Error al leer campos IPTC de archivos JPEG en .NET
Pregunta
Me da la siguiente excepción al llamar BitmapMetadata.GetQuery ( "/ APP13 / CRI / 8bimiptc / IPTC") en aproximadamente el 1% de los archivos JPEG He intentado esto en. ¿Cuál podría ser la causa de esto y qué puedo hacer para solucionarlo? (He tratado de buscar en Google pero sólo puedo encontrar un resultado relevante haciendo la misma pregunta, pero que no tiene respuesta.)
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.
Editar:
Los informes de la herramienta exiv2
:
Error: Invalid Photoshop IRB data size 6372
Solución
Mi suposición es que los datos IRB Photoshop es más larga que la cabecera especifica.
Al menos esto es lo que puede deducir por deslizándose sobre la fuente de Exiv2 (línea 107):
http: //dev.exiv2 .org / repositorios / entrada / exiv2 / trunk / src / jpgimage.cpp? rev = 1,146
Pero mi comprensión de c no es tan bueno! :)
Otros consejos
Error 0x88982F05 es único error habitual de valor fuera de rango por WIC Por lo tanto, puede ser convertidos a cargo de usted. También esto podría no ser el único problema con las cadenas de consulta IPTC. Sólo try {} catch {} esta sección como esta para proveyendo de gracia
if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try {
... }
catch {}
Comprobar este post - fijo mi problema
http://getsatisfaction.com/livelabs/topics/deepzoomtools_dll_exception_from_hresult_0x88982f05
Sobre la base de la información comunicada por exiv2, el tamaño de la información IRB Photoshop es incompatible con el tamaño total de los metadatos.
Si desea ignorar los mensajes que sería más específico en la el tipo de excepción se captura -. Sólo ignorar o informe que Excepción COM determinado
Un par de herramientas / recursos por ahí: