Ошибка чтения полей IPTC из JPEG-файлов в .NET
Вопрос
Я получаю следующее исключение при вызове BitmapMetadata.GetQuery("/app13/irb / 8bimiptc / iptc") примерно в 1% файлов JPEG, на которых я это пробовал.Что может быть причиной этого и что я могу сделать, чтобы это исправить?(Я пробовал погуглить, но смог найти только один релевантный результат, задающий тот же вопрос, но без ответа.)
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
Решение
Я предполагаю, что данные Photoshop IRB длиннее, чем указано в заголовке.
По крайней мере, это то, что я могу вывести, просмотрев источник Exiv2 (строка 107):
http://dev.exiv2.org/repositories/entry/exiv2/trunk/src/jpgimage.cpp?rev=1146
Но мое понимание языка си не настолько хорошо!:)
Другие советы
Ошибка 0x88982F05 - это всего лишь обычная ошибка WIC, выходящая за пределы диапазона значений Таким образом, вы можете легко с ней справиться.Также это может быть не единственной вашей проблемой со строками запроса IPTC.Просто попробуйте {} поймать {} этот раздел вот так, чтобы выполнить изящное выпадение
if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try {
... }
catch {}
Проверьте этот пост - исправлена моя проблема
http://getsatisfaction.com/livelabs/topics/deepzoomtools_dll_exception_from_hresult_0x88982f05
Основываясь на информации, предоставленной exiv2, размер информации Photoshop IRB не соответствует общему размеру метаданных.
Если вы хотите игнорировать сообщения, я бы уточнил тип исключения, которое вы перехватываете, - игнорируйте или сообщайте только об этом конкретном COM-исключении.
Существует пара инструментов / ресурсов: