Ошибка чтения полей IPTC из JPEG в .NET - PullRequest
1 голос
/ 18 мая 2009

Я получаю следующее исключение при вызове BitmapMetadata.GetQuery ("/ app13 / irb / 8bimiptc / iptc") на примерно 1% JPEG-файлов, на которых я пробовал это. Что может быть причиной этого и что я могу сделать, чтобы это исправить? (Я пробовал поискать в Google, но могу найти только один релевантный результат, задающий тот же вопрос, но без ответа.)

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.

Edit:

Инструмент exiv2 сообщает:

Error: Invalid Photoshop IRB data size 6372

Ответы [ 4 ]

1 голос
/ 21 сентября 2009

Проверьте этот пост - исправил мою проблему

http://getsatisfaction.com/livelabs/topics/deepzoomtools_dll_exception_from_hresult_0x88982f05

1 голос
/ 01 июня 2009

Ошибка 0x88982F05 - это только обычная ошибка выхода за пределы диапазона по WIC Таким образом, это может быть легко обработано вами. Также это может быть не единственной проблемой со строками запроса IPTC. Просто попробуйте {} поймать {} этот раздел, как этот, чтобы изящный фалловер

if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try { 
... }
catch {}
1 голос
/ 29 мая 2009

Я предполагаю, что данные IRB в Photoshop длиннее, чем указано в заголовке.

По крайней мере, это то, что я могу вывести, просматривая источник Exiv2 (строка 107):

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

Но мое понимание с не так хорошо! :)

0 голосов
/ 01 июня 2009

На основании информации, сообщенной exiv2, размер информации IRB в Photoshop не соответствует общему размеру метаданных.

Если вы хотите игнорировать сообщения, я бы более конкретно указал тип исключений, которые вы перехватываете - только игнорируйте или сообщайте об этом конкретном исключении COM.

Несколько инструментов / ресурсов там:

...