
C लाइब्रेरी EXIF डेटा को पार्स करने, संपादित करने और सहेजने के लिए, जिसमें AOSP10 में CVE-2020-0452 को संबोधित करने पर ध्यान केंद्रित किया गया है। मेटाडेटा निष्कर्षण और हेरफेर के लिए API प्रदान करता है।
libexif -------
libexif EXIF डेटा को पार्स करने, संपादित करने और सहेजने के लिए एक लाइब्रेरी है। इसका उद्देश्य कमांड-लाइन उपयोगिताओं और GUI वाले प्रोग्रामों में कई अनावश्यक (रिडंडेंट) कार्यान्वयनों को प्रतिस्थापित करना है।
libexif EXIF डेटा के पार्सिंग, संपादन और सहेजने का समर्थन करता है। इसके अलावा, इसमें gettext समर्थन भी है। EXIF मानक 2.1 में वर्णित सभी EXIF टैग (और 2.2 से अधिकांश) समर्थित हैं। Canon, Casio, Epson, Fuji, Nikon, Olympus, Pentax और Sanyo कैमरों के कई मेकर नोट्स भी समर्थित हैं।
libexif शुद्ध C में लिखा गया है और इसे किसी अतिरिक्त लाइब्रेरी की आवश्यकता नहीं है। GNU gettext का उपयोग भाषा अनुवाद के लिए किया जाएगा, यदि उपलब्ध हो।
libexif केवल कुछ मेकर नोट्स को संभाल सकता है, और वे भी बहुत अच्छी तरह से नहीं। और अधिक कार्य करने की आवश्यकता है। ध्यान दें कि libmnote को libexif में विलीन कर दिया गया है - इसकी अब आवश्यकता नहीं है।
हमने doxygen का उपयोग करके libexif API का दस्तावेजीकरण किया है और परिणाम http://libexif.sourceforge.net/api/ पर उपलब्ध करा रहे हैं।
test निर्देशिका में मौजूद छोटे परीक्षण प्रोग्राम दिखाते हैं कि खरोंच से मान्य EXIF डेटा कैसे बनाया जाए, EXIF डेटा कैसे सहेजा जाए और मेमोरी में मौजूद डेटा से EXIF डेटा कैसे लोड किया जाए। contrib/examples/ निर्देशिका में कुछ सरल उदाहरण प्रोग्राम भी उपलब्ध हैं। libexif का उपयोग करने के बारे में कोई प्रश्न होने पर [email protected] पर हमसे संपर्क करने में संकोच न करें।
libexif को अपने स्वयं के पैकेज में लिंक करने के लिए, हम pkgconfig उपयोगिता का उपयोग करने की अनुशंसा करते हैं (cf. आपकी सुविधा के लिए, libexif दोनों libexif-uninstalled.pc प्रदान करता है और libexif.pc स्थापित करता है।
अभी, मुझे libexif के निम्नलिखित फ्रंटएंड के बारे में पता है:
यदि आप अपने प्रोग्राम को libexif का उपयोग करने के लिए स्थानांतरित करना चाहते हैं या उसमें EXIF समर्थन जोड़ना चाहते हैं, तो लेखकों से संपर्क करने में संकोच न करें।
मुझे निम्नलिखित लाइब्रेरियों के बारे में पता है जो libexif का उपयोग करती हैं या उससे प्रेरित हैं:
libexif को बिल्ड करने के लिए क्या करना है यह वास्तव में आपके वातावरण पर निर्भर करता है। सोर्स टार बॉल से बिल्ड करने में आमतौर पर निम्नलिखित कमांड शामिल होते हैं:
./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 'make dist' में Windows DLL शामिल करने के लिए
कुछ विशेष अनुप्रयोग configure समय पर CPPFLAGS पर्यावरण चर में निम्नलिखित में से एक या दोनों मैक्रोज़ सेट करके libexif बाइनरी के आकार को कम कर सकते हैं। प्रत्येक मैक्रो बाइनरी से कुछ प्रकार के टेक्स्ट स्ट्रिंग्स और स्थिरांक हटा देता है। जिन अनुप्रयोगों को विशिष्ट, ज्ञात EXIF टैग तक पहुँचने की आवश्यकता होती है और उनके डेटा का अर्थ पहले से पता होता है, उन्हें उन स्ट्रिंग्स की आवश्यकता नहीं होती है और उन्हें हटाकर काफी जगह बचाई जा सकती है।
-DNO_VERBOSE_TAG_STRINGS EXIF टैग के नाम और विवरण, डीबग संदेश, अनिवार्य EXIF फ़ील्ड (auto-tag-fixup अक्षम करना) -DNO_VERBOSE_TAG_DATA सूचीबद्ध टैग डेटा सामग्री के नाम
libexif अनुवाद स्वयंसेवकों द्वारा अपने दम पर किए जाते हैं, या तो सीधे libexif परियोजना के साथ या दो अनुवाद समन्वय साइटों में से किसी एक के माध्यम से, Translation Project http://translationproject.org/domain/libexif.html और Launchpad https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12। Translation Project द्वारा समन्वित भाषा अनुवादों में किसी भी अद्यतन को उनकी वेब साइट के माध्यम से किया जाना चाहिए, लेकिन अन्य सभी भाषाओं के अद्यतन या तो Launchpad (पसंदीदा) के माध्यम से या सीधे libexif डेवलपर्स की मेलिंग सूची में भेजकर किए जा सकते हैं। इस लेखन के अनुसार, निम्नलिखित भाषाओं को Translation Project के माध्यम से अद्यतन किया जाना चाहिए: cs da de es fr it ja nl pl sk sv uk vi
यदि आप libexif का किसी नई भाषा में अनुवाद करने में रुचि रखते हैं, तो हम अनुशंसा करते हैं कि आप उपरोक्त अनुवाद समूहों में से किसी एक से जुड़ें और आपकी सहायता के लिए उनके द्वारा बनाई गई प्रणालियों का लाभ उठाएँ। Translation Project में libexif के लिए अनुवाद अस्वीकरण (डिस्क्लेमर) की आवश्यकता नहीं है; अनुवाद करके, आप इसे libexif के बाकी हिस्सों (LGPL) के समान लाइसेंस शर्तों के तहत प्रदान करने के लिए परोक्ष रूप से सहमत होते हैं।
libexif मूल रूप से Curtis Galloway [email protected] द्वारा लिखा गया था। मूल डिज़ाइन द्वारा संपादन और सहेजने का समर्थन न करने के कारण, Lutz Mueller [email protected] ने libexif को खरोंच से फिर से लिखा। तब से, कई और लोगों ने libexif में योगदान दिया है।
यदि आप EXIF के बारे में और अधिक जानकारी में रुचि रखते हैं, तो यहाँ कुछ लिंक दिए गए हैं जिन्हें आप देख सकते हैं।