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

पायथन में एक छवि के प्रकार का निर्धारण करें?

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

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

अजगर imghdr पैकेज फ़ाइल या बाइट स्ट्रीम में निहित छवि के प्रकार को निर्धारित करता है।

इंस्टॉलेशन

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

अपनी मशीन में imghdr स्थापित करने के लिए, बस अपने कमांड टर्मिनल में कमांड के नीचे चलाएँ:

pip install imghdr

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

>>> import imghdr
>>>

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

सिंटैक्स

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

imghdr.what(filename[, h])

कहां

  • फ़ाइल नाम :फ़ाइल नाम द्वारा नामित फ़ाइल में निहित छवि डेटा का परीक्षण करता है और छवि प्रकार का वर्णन करने वाली एक स्ट्रिंग देता है।

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

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

Value
<वें शैली ="पाठ-संरेखण:केंद्र;"> छवि प्रारूप
'rgb'
SGI ImgLib Files
'gif'
GIF 87a और 89a फ़ाइलें
'pbm'
पोर्टेबल बिटमैप फ़ाइलें
'pgm'
पोर्टेबल ग्रेमैप फ़ाइलें
'ppm'
पोर्टेबल पिक्समैप फ़ाइलें
'tiff'
TIFF Files
'rast'
Sun Raster Files
'xbm'
X बिटमैप फ़ाइलें
'jpeg'
JFIF या Exif फॉर्मेट में JPEG डेटा
'bmp'
BMP files
'png'
पोर्टेबल नेटवर्क ग्राफ़िक्स

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

imghdr.tests

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

परीक्षण फ़ंक्शन छवि प्रकार को एक स्ट्रिंग के रूप में लौटाएगा और कोई नहीं यदि यह विफल रहा।

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

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

def identify_filetype(url, imageName, folderName):
   session = _setupSession()
   try:
      # time out is another parameter tuned
      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 वर्ग में

  1. OpenCV का उपयोग करके छवि के किनारों का पता लगाने के लिए पायथन प्रोग्राम

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

  1. पायथन में फोटोमोसाइक लागू करना

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