python 通过exifread读取照片信息

时间:2021-05-22

通过第三方库exifread读取照片信息。
exifread官网:https://pypi.org/project/ExifRead/

一、安装exifread

pip install exifread

二、读取照片信息,以及根据经纬度通过百度地图API获取位置

import exifreadimport jsonimport urllib.request# Open image file for reading (binary mode)f = open('001.jpg', 'rb')# Return Exif tagstags = 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_addresslat = getLatOrLng('GPS GPSLatitudeRef','GPS GPSLatitude') #纬度lng = getLatOrLng('GPS GPSLongitudeRef','GPS GPSLongitude') #经度print('纬度:{} 经度:{}'.format(lat, lng))location = getlocation(str(lat), str(lng))print('位置:{}'.format(location))

以上就是python 通过exifread读取照片信息的详细内容,更多关于python 读取照片信息的资料请关注其它相关文章!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章