通過第三方庫exifread讀取照片信息。 exifread官網:https://pypi.org/project/ExifRead/ ...
通過第三方庫exifread讀取照片信息。
exifread官網:https://pypi.org/project/ExifRead/
一、安裝exifread
pip install exifread
二、讀取照片信息,以及根據經緯度通過百度地圖API獲取位置
import exifread import json import urllib.request # Open image file for reading (binary mode) f = open('001.jpg', 'rb') # Return Exif tags tags = exifread.process_file(f) ''' #列印所有照片信息 for tag in tags.keys(): print("Key: {}, value {}".format(tag, tags[tag])) ''' #列印照片其中一些信息 print('拍攝時間:', tags['EXIF DateTimeOriginal']) print('照相機製造商:', tags['Image Make']) print('照相機型號:', tags['Image Model']) print('照片尺寸:', tags['EXIF ExifImageWidth'], tags['EXIF ExifImageLength']) #獲取經度或緯度 def getLatOrLng(refKey, tudeKey): if refKey not in tags: return None ref=tags[refKey].printable LatOrLng=tags[tudeKey].printable[1:-1].replace(" ","").replace("/",",").split(",") LatOrLng=float(LatOrLng[0])+float(LatOrLng[1])/60+float(LatOrLng[2])/float(LatOrLng[3])/3600 if refKey == 'GPS GPSLatitudeRef' and tags[refKey].printable != "N": LatOrLng=LatOrLng*(-1) if refKey == 'GPS GPSLongitudeRef' and tags[refKey].printable != "E": LatOrLng=LatOrLng*(-1) return LatOrLng #調用百度地圖API通過經緯度獲取位置 def getlocation(lat,lng): url = 'http://api.map.baidu.com/geocoder/v2/?location=' + lat + ',' + lng + '&output=json&pois=1&ak=申請的百度地圖KEY' req = urllib.request.urlopen(url) res = req.read().decode("utf-8") str = json.loads(res) #print(str) jsonResult = str.get('result') formatted_address = jsonResult.get('formatted_address') return formatted_address lat = getLatOrLng('GPS GPSLatitudeRef','GPS GPSLatitude') #緯度 lng = getLatOrLng('GPS GPSLongitudeRef','GPS GPSLongitude') #經度 print('緯度:{} 經度:{}'.format(lat, lng)) location = getlocation(str(lat), str(lng)) print('位置:{}'.format(location))