Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन में इमेज टाइप निर्धारित करना: imghdr मॉड्यूल


इस सेक्शन में हम देखेंगे कि हमारे पास किस प्रकार की इमेज फाइल है। तो एक स्थिति पर विचार करें, जहां एक डायरेक्टरी में सैकड़ों इमेज फाइलें हैं और हम सभी jpeg (या किसी विशेष इमेज फाइल टाइप) फाइल टाइप प्राप्त करना चाहते हैं। यह सब हम पायथन का उपयोग करके प्रोग्रामेटिकली करने जा रहे हैं।

पायथन इमेज के प्रकार को निर्धारित करने के लिए लाइब्रेरी प्रदान करता है, ऐसी एक लाइब्रेरी imghdr है।

पायथन imghdr पैकेज एक फाइल या बाइट स्ट्रीम में निहित इमेज के प्रकार को निर्धारित करता है।

इंस्टॉलेशन

बहुत संभावना है कि यदि आप पायथन 3.6 या उच्चतर का उपयोग कर रहे हैं, तो imghdr मॉड्यूल एक स्टैंडर्ड पैकेज है और पायथन इंस्टॉलेशन के साथ आएगा।

अपनी मशीन में imghdr इंस्टॉल करने के लिए, बस अपने कमांड टर्मिनल में नीचे दी गई कमांड चलाएं:

pip install imghdr

सफल इंस्टॉलेशन के बाद, यह सत्यापित करने के लिए कि imghdr ठीक से इंस्टॉल है या नहीं, बस अपने पायथन शेल में मॉड्यूल इम्पोर्ट करें।

>>> import imghdr
>>>

यदि आपको कोई त्रुटि नहीं मिल रही है, तो इसका मतलब है कि imghdr आपकी मशीन में इंस्टॉल है।

सिंटैक्स

imghdr पैकेज निम्नलिखित फंक्शन को परिभाषित करता है:

imghdr.what(filename[, h])

जहां

  • Filename: filename द्वारा नामित फाइल में निहित इमेज डेटा का परीक्षण करता है और इमेज प्रकार का वर्णन करने वाली एक स्ट्रिंग लौटाता है।
  • h: यह वैकल्पिक है, यदि h मौजूद है - तो filename को नजरअंदाज कर दिया जाता है और mाना जाता है कि h में टेस्ट करने के लिए बाइट स्ट्रीम है।

नीचे imghdr पैकेज का उपयोग करके पहचाने जाने वाले अनुमत इमेज प्रकार हैं।

मान इमेज फॉर्मेट
'rgb' SGI ImgLib फाइल्स
'gif' GIF 87a और 89a फाइल्स
'pbm' पोर्टेबल बिटमैप फाइल्स
'pgm' पोर्टेबल ग्रेमैप फाइल्स
'ppm' पोर्टेबल पिक्समैप फाइल्स
'tiff' TIFF फाइल्स
'rast' सन रास्टर फाइल्स
'xbm' X बिटमैप फाइल्स
'jpeg' JFIF या Exif फॉर्मेट में JPEG डेटा
'bmp' BMP फाइल्स
'png' पोर्टेबल नेटवर्क ग्राफिक्स

लेकिन हम इस वेरिएबल में जोड़कर उन फाइल प्रकारों की सूची बढ़ा सकते हैं जिन्हें imghdr पैकेज पहचान सकता है।

imghdr.tests

इस फंक्शन में व्यक्तिगत परीक्षण करने वाले फंक्शंस की सूची होती है। प्रत्येक फंक्शन दो आर्गुमेंट्स लेता है: बाइट-स्ट्रीम और एक खुला फाइल-जैसा ऑब्जेक्ट। हालांकि, जब what() को बाइट-स्ट्रीम के साथ कॉल किया जाता है, तो फाइल-जैसा ऑब्जेक्ट None होगा।

टेस्ट फंक्शन इमेज प्रकार को स्ट्रिंग के रूप में लौटाएगा अन्यथा यदि यह विफल रहा तो None।

>>> import imghdr
>>> imghdr.what('clock.jpg')
'jpeg'

नीचे imghdr पैकेज का सिर्फ एक इम्प्लीमेंटेशन है, जहां यदि कोई विशेष इमेज फाइल एक्सटेंशन है तो विशेष ऑपरेशन करें:

def identify_filetype(url, imageName, folderName):
    session = _setupSession()
    try:
        # टाइम आउट एक और पैरामीटर है जिसे ट्यून किया गया है
        image = session.get(url, timeout=5)
        with open(os.path.join(folderName, imageName), 'wb') as fout:
            fout.write(image.content)
        fileExtension = imghdr.what(os.path.join(folderName, imageName))
        if fileExtension is None:
            os.remove(os.path.join(folderName, imageName))
        else:
            newName = imageName + '.' + str(fileExtension)
            os.rename(os.path.join(folderName, imageName), os.path.join(folderName, newName))
    except Exception as e:
        print("failed to download one pages with url of " + str(url))

  1. पायथन डिबगर (pdb मॉड्यूल) पायथन डिबगर (pdb मॉड्यूल)

    सॉफ़्टवेयर डेवलपमेंट की शब्दावली में, डिबगिंग शब्द का उपयोग प्रोग्राम में त्रुटियों का पता लगाने और सुधारने की प्रक्रिया के लिए किया जाता है। पायथन की स्टैंडर्ड लाइब्रेरी में pdb मॉड्यूल होता है जो पायथन प्रोग्राम्स की डिबगिंग के लिए यूटिलिटीज़ का एक सेट है। डिबगिंग कार्यक्षमता Pdb क्लास में परिभाष

  1. Python प्रोग्राम: OpenCV का उपयोग करके इमेज के एज डिटेक्ट करना Python प्रोग्राम: OpenCV का उपयोग करके इमेज के एज डिटेक्ट करना

    इस समस्या में, हम देखेंगे कि Python इमेज या वीडियो फ़ाइल के एज कैसे डिटेक्ट कर सकता है। इसे प्राप्त करने के लिए, हमें OpenCV लाइब्रेरी की आवश्यकता है। OpenCV लाइब्रेरी मुख्य रूप से कंप्यूटर विजन के लिए डिज़ाइन की गई है। यह ओपन सोर्स है। मूल रूप से इसे इंटेल द्वारा डिज़ाइन किया गया था। यह ओपन-सोर्स B

  1. Python में फोटोमोज़ाइक्स इम्प्लीमेंट करना Python में फोटोमोज़ाइक्स इम्प्लीमेंट करना

    फोटोमोज़ाइक एक तकनीक है, जहां हम अपनी इमेज को वर्गों के ग्रिड में विभाजित कर सकते हैं। प्रत्येक वर्ग को कुछ अन्य इमेज या रंगों द्वारा प्रतिस्थापित किया जाएगा। इसलिए जब हम एक निश्चित दूरी से वास्तविक इमेज देखना चाहते हैं, तो हम वास्तविक इमेज देख सकते हैं, लेकिन यदि हम करीब आते हैं, तो हम अलग-अलग रंगी