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
¿Fue útil?

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 {}

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í:

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top