from PIL import Image
from PIL.ExifTags import TAGS

# path to the image or video
imagename = "image.jpg"

# read the image data using PIL
image = Image.open(imagename)

# extract EXIF data
exifdata = image.getexif()

# iterating over all EXIF data fields
for tag_id in exifdata:
    # get the tag name, instead of human unreadable tag id
    tag = TAGS.get(tag_id, tag_id)
    data = exifdata.get(tag_id)
    # decode bytes 
    if isinstance(data, bytes):
        data = data.decode()
    print(f"{tag:25}: {data}")

ExifVersion: 0220 घटक कॉन्फ़िगरेशन: शटरस्पीड वैल्यू: (1345, 100) डेटटाइम ओरिजिनल: 2020:08:27 09:43:15 डेटटाइम डिजीटल: 2020:08:27 09:43:15 एपर्चर वैल्यू: (185, 100) ब्राइटनेसवैल्यू: (930, 100) एक्सपोजर बायस वैल्यू: (0, 10) मैक्सएपर्चर वैल्यू: (185, 100) मीटरिंगमोड: 2 फ्लैश: 0 फोकल लेंथ: (358, 100) यूजर कमेंट: कलरस्पेस: 1 एक्जिफ इमेजविड्थ: 4128 सीनकैप्चर टाइप: 0 सबसेकटाइम: 0424 सबसेकटाइम ओरिजिनल: 0424 सबसेक टाइम: 0424 सबसेक टाइमऑरिजिनल: 0424 सबसेक टाइम इमेज की लंबाई: 1908 मेक: सैमसंग मॉडल: SM-M305F ओरिएंटेशन: 6 YCbCrPositioning: 1 एक्सपोजरटाइम: (1, 2786) ExifInteroperabilityOffset: 944 XResolution: (72, 1) FNumber: (190, 100) सीन टाइप : Yसंकल्प : (72, 1) ImageUniqueID : E13LLLI00PM E13LLMK03PA

एक्सपोजर प्रोग्राम: 2 कस्टम रेंडर किया गया: 0 आईएसओ स्पीड रेटिंग: 40 रिज़ॉल्यूशन यूनिट: 2 एक्सपोजर मोड: 0 फ्लैशपिक्सवर्जन: 0100 इमेजविड्थ: 4128 व्हाइट बैलेंस: 0 सॉफ्टवेयर: एम 305एफडीडीयू 5 सीटीएफ 2 डेटटाइम: 2020: 08:27 09:43:15 डिजिटल ज़ूम: 27 कंट्रास्ट (0, 0) कैलम: 27 कंट्रास्ट (0, 0) कैलम: 27 कंट्रास्ट: : 0 संतृप्ति: 0 कुशाग्रता: 0 ExifOffset: 226 निर्माता नोट: 0100 Z@P

-3
srini 29 सितंबर 2020, 08:58
आपका प्रश्न/समस्या क्या है?
 – 
buran
29 सितंबर 2020, 09:03
मैं समन्वय बिंदु विवरण प्राप्त करने में असमर्थ था (छवि से अक्षांश और देशांतर)
 – 
srini
29 सितंबर 2020, 09:06
क्या इससे आपके सवाल का जवाब मिलता है? पायथन में, मैं कैसे पढ़ूं एक छवि के लिए डेटा exif?
 – 
buran
29 सितंबर 2020, 09:11
मैंने अक्षांश और लंबे निर्देशांक को छोड़कर अन्य विवरणों के बारे में जानकारी प्राप्त करने की कोशिश की है
 – 
srini
29 सितंबर 2020, 09:21
1
सामान्य तौर पर: अपना कोड-स्निपेट पोस्ट करने से पहले अपनी समस्या का वर्णन करें। आपने पहले से क्या प्रयास किया है यह दिखाने के लिए कोड का उपयोग करें। ऐसे में लोग यह अनुमान लगाने से नहीं चूकते कि आप क्या मदद मांग रहे हैं।
 – 
Nemelis
29 सितंबर 2020, 09:36

1 उत्तर

सबसे बढ़िया उत्तर

मॉड्यूल पाइक्सिफ़ (pip install piexif) का उपयोग करके आप निम्न प्रकार से एक्ज़िफ़ में GPS जानकारी प्राप्त कर सकते हैं।

from pprint import pprint
from PIL import Image
import piexif

codec = 'ISO-8859-1'  # or latin-1

def exif_to_tag(exif_dict):
    exif_tag_dict = {}
    thumbnail = exif_dict.pop('thumbnail')
    exif_tag_dict['thumbnail'] = thumbnail.decode(codec)

    for ifd in exif_dict:
        exif_tag_dict[ifd] = {}
        for tag in exif_dict[ifd]:
            try:
                element = exif_dict[ifd][tag].decode(codec)

            except AttributeError:
                element = exif_dict[ifd][tag]

            exif_tag_dict[ifd][piexif.TAGS[ifd][tag]["name"]] = element

    return exif_tag_dict

def main():
    filename = 'IMG_2685.jpg'  # obviously one of your own pictures
    im = Image.open(filename)

    exif_dict = piexif.load(im.info.get('exif'))
    exif_dict = exif_to_tag(exif_dict)

    pprint(exif_dict['GPS'])

if __name__ == '__main__':
   main()

नतीजा

{'GPSAltitude': (94549, 14993),
 'GPSAltitudeRef': 0,
 'GPSDateStamp': '2020:09:04',
 'GPSDestBearing': (1061399, 5644),
 'GPSDestBearingRef': 'T',
 'GPSHPositioningError': (5, 1),
 'GPSImgDirection': (1061399, 5644),
 'GPSImgDirectionRef': 'T',
 'GPSLatitude': ((12, 1), (34, 1), (1816, 100)),
 'GPSLatitudeRef': 'N',
 'GPSLongitude': ((99, 1), (57, 1), (4108, 100)),
 'GPSLongitudeRef': 'E',
 'GPSSpeed': (0, 1),
 'GPSSpeedRef': 'K',
 'GPSTimeStamp': ((13, 1), (2, 1), (4599, 100)),
 'GPSVersionID': (2, 2, 0, 0)}

यहाँ exif_to_tag एक्ज़िफ़ कोड को अधिक पठनीय टैग में अनुवादित करता है।

0
Bruno Vermeulen 29 सितंबर 2020, 09:35
लेखन त्रुटि: 'कोई नहीं' वस्तु सबस्क्रिप्ट करने योग्य नहीं है
 – 
srini
29 सितंबर 2020, 09:30
विशेषता त्रुटि: 'बाइट्स' ऑब्जेक्ट में कोई विशेषता नहीं है 'एन्कोड'
 – 
srini
29 सितंबर 2020, 09:33
आप कौन सा पायथन संस्करण चला रहे हैं? कोड पायथन 3.7 और ऊपर में ठीक चलता है। आपको त्रुटि कोड किन पंक्तियों में मिलते हैं?
 – 
Bruno Vermeulen
29 सितंबर 2020, 09:37
मैं 3.7.6 संस्करण का उपयोग कर रहा हूं। पंक्ति संख्या 30 और 31 में विशेषता त्रुटि के रूप में त्रुटि प्राप्त करना: 'बाइट्स' ऑब्जेक्ट में कोई विशेषता नहीं है 'एन्कोड'
 – 
srini
29 सितंबर 2020, 10:03
ठीक है, कृपया exif_tag_dict['thumbnail'] = thumbnail.decode(codec) फंक्शन exif_to_tag से लाइन हटा दें और देखें कि क्या यह चलती है...
 – 
Bruno Vermeulen
29 सितंबर 2020, 10:09