
مكتبة C لتحليل وتحرير وحفظ بيانات EXIF، مع التركيز على معالجة CVE-2020-0452 في AOSP10. توفر API لاستخراج البيانات الوصفية ومعالجتها.
libexif -------
libexif هي مكتبة لتحليل وتحرير وحفظ بيانات EXIF. تهدف إلى استبدال العديد من التطبيقات المكررة في الأدوات المساعدة لسطر الأوامر والبرامج ذات الواجهات الرسومية.
تدعم libexif تحليل وتحرير وحفظ بيانات EXIF. بالإضافة إلى ذلك، فهي تدعم gettext. جميع وسوم EXIF الموصوفة في معيار EXIF 2.1 (ومعظمها من 2.2) مدعومة. كما يتم دعم العديد من ملاحظات المصنعين (maker notes) من كاميرات Canon و Casio و Epson و Fuji و Nikon و Olympus و Pentax و Sanyo.
مكتوبة بلغة C نقية ولا تتطلب أي مكتبة إضافية. سيتم استخدام GNU gettext لترجمة اللغة، إذا كان متاحًا.
يمكن لـ libexif التعامل مع بعض ملاحظات المصنعين فقط، وحتى تلك ليست بشكل جيد. هناك حاجة إلى المزيد من العمل. لاحظ أنه تم دمج libmnote مع libexif - لم يعد مطلوبًا.
لقد قمنا بتوثيق واجهة برمجة تطبيقات libexif باستخدام doxygen وجعلنا النتائج متاحة على http://libexif.sourceforge.net/api/
توضح البرامج الاختبارية القصيرة في دليل الاختبار كيفية إنشاء بيانات EXIF صالحة من البداية، وكيفية حفظ بيانات EXIF وكيفية تحميل بيانات EXIF من البيانات الموجودة في الذاكرة. هناك أيضًا بعض برامج الأمثلة البسيطة المتاحة في دليل contrib/examples/. لا تتردد في الاتصال بنا على [email protected] إذا كانت لديك أي أسئلة حول كيفية استخدام libexif.
للربط بـ libexif في حزمتك الخاصة، نوصي باستخدام أداة pkgconfig (راجع http://www.freedesktop.org/wiki/Software/pkg-config/ لراحتك، توفر libexif كلاً من libexif-uninstalled.pc وتثبت libexif.pc.
حاليًا، أعرف الواجهات الأمامية التالية لـ libexif:
إذا كنت ترغب في ترحيل برنامجك لاستخدام libexif أو إضافة دعم EXIF إليه، فلا تتردد في الاتصال بالمؤلفين.
أعرف المكتبات التالية التي تستخدم libexif أو استلهمت منها:
يعتمد الأمر على بيئتك فيما يجب فعله لبناء libexif. عادةً ما يتضمن بناء الحزمة المصدرية (tar ball) الأوامر التالية:
./configure make sudo make install
عند البناء من المصدر خارج CVS، سيكون شيئًا مثل التالي ضروريًا:
gettextize mv po/Makevars.template po/Makevars aclocal -I auto-m4 -I m4m autoheader libtoolize --force automake --add-missing autoconf ./configure make
أو ربما فقط:
autoreconf -i ./configure make
بالإضافة إلى الوسائط القياسية، يأخذ configure عدة وسائط خاصة بـ libexif:
--disable-docs لتعطيل إنتاج أي وثائق --enable-internal-docs بناء وثائق الكود الداخلية إذا كان Doxygen متاحًا --enable-ship-binaries لتضمين DLLs ويندوز في 'make dist'
يمكن لبعض التطبيقات المتخصصة تقليل حجم الملف الثنائي libexif عن طريق تعيين واحد أو كلا الماكروين التاليين في متغير البيئة CPPFLAGS وقت configure. كل منهما يزيل أنواعًا معينة من سلاسل النص والثوابت من الملف الثنائي. التطبيقات التي تحتاج إلى الوصول إلى وسوم EXIF محددة ومعروفة وتعرف مسبقًا معنى بياناتها لا تحتاج إلى هذه السلاسل ويمكنها توفير مساحة كبيرة عن طريق إزالتها.
-DNO_VERBOSE_TAG_STRINGS أسماء وأوصاف وسوم EXIF، رسائل التصحيح، حقول EXIF الإلزامية (تعطيل إصلاح الوسم التلقائي) -DNO_VERBOSE_TAG_DATA أسماء محتويات بيانات الوسم المعدودة
ترجمات libexif يتم إجراؤها بواسطة متطوعين يعملون بشكل مستقل، إما مباشرة مع مشروع libexif أو من خلال أحد موقعي تنسيق الترجمة، مشروع الترجمة http://translationproject.org/domain/libexif.html و Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12. يجب إجراء أي تحديثات لترجمات اللغة التي ينسقها مشروع الترجمة من خلال موقعه على الويب، ولكن يمكن تحديث جميع اللغات الأخرى إما من خلال Launchpad (مفضلاً) أو عن طريق إرسال التحديثات إلى قائمة بريد مطوري libexif مباشرةً. وقت كتابة هذا، يجب تحديث اللغات التالية من خلال مشروع الترجمة: cs da de es fr it ja nl pl sk sv uk vi
إذا كنت مهتمًا بترجمة libexif إلى لغة جديدة، نوصيك بالانضمام إلى إحدى مجموعات الترجمة أعلاه والاستفادة من الأنظمة التي بنوها لمساعدتك. إخلاء مسؤولية الترجمة غير مطلوب لـ libexif في مشروع الترجمة؛ من خلال القيام بالترجمة، فإنك توافق ضمنيًا على توفيرها بموجب نفس شروط الترخيص مثل بقية libexif (LGPL).
تم كتابة libexif في الأصل بواسطة Curtis Galloway [email protected]. بسبب عدم دعم التصميم الأصلي للتحرير والحفظ، قام Lutz Mueller [email protected] بإعادة كتابة libexif من الصفر. منذ ذلك الحين، ساهم العديد من الأشخاص في libexif.
بعض الروابط التي قد ترغب في الاطلاع عليها إذا كنت مهتمًا بمزيد من المعلومات حول EXIF.