سؤال

أحصل على الاستثناء التالي عند استدعاء 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.

يحرر:

ال exiv2 تقارير الأداة:

Error: Invalid Photoshop IRB data size 6372
هل كانت مفيدة؟

المحلول

وتخميني هو أن بيانات الاتحاد الدولي للرجبي فوتوشوب أطول من يحدد رأس.

وعلى الأقل هذا هو ما يمكن أن تقتطع من قبل القشط فوق مصدر Exiv2 (خط 107):

HTTP: //dev.exiv2 كافيه / مستودعات / دخول / exiv2 / جذع / SRC / jpgimage.cpp؟ تزيد السرعة = 1146

ولكن ما أفهمه من ج ليست جيدة! :)

نصائح أخرى

خطأ 0x88982F05 هو الوحيد المنتظم القيمة خارج نطاق الخطأ WIC وبالتالي فإنه يمكن أن يكون easely التعامل معها من قبل لك. أيضا هذا قد لا يكون المشكلة الوحيدة مع سلاسل الاستعلام IPTC. مجرد محاولة {} الصيد {} هذا القسم مثل هذا fallover رشيقة

if (bitmapMetadata.GetQuery(MY_QUERY) != null &&) {
try { 
... }
catch {}

استنادًا إلى المعلومات التي أبلغت عنها exiv2، فإن حجم معلومات Photoshop IRB لا يتوافق مع الحجم الإجمالي لبيانات التعريف.

إذا كنت ترغب في تجاهل الرسائل، سأكون أكثر تحديدًا في نوع الاستثناء الذي تكتشفه - فقط قم بتجاهل استثناء COM المحدد أو الإبلاغ عنه.

زوجان من الأدوات/الموارد المتاحة:

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top