python 通过exifread读取照片信息
通过第三方库exifread读取照片信息。
exifread官网:https://pypi.org/project/ExifRead/
一、安装exifread
pipinstallexifread
二、读取照片信息,以及根据经纬度通过百度地图API获取位置
importexifread
importjson
importurllib.request
#Openimagefileforreading(binarymode)
f=open('001.jpg','rb')
#ReturnExiftags
tags=exifread.process_file(f)
'''
#打印所有照片信息
fortagintags.keys():
print("Key:{},value{}".format(tag,tags[tag]))
'''
#打印照片其中一些信息
print('拍摄时间:',tags['EXIFDateTimeOriginal'])
print('照相机制造商:',tags['ImageMake'])
print('照相机型号:',tags['ImageModel'])
print('照片尺寸:',tags['EXIFExifImageWidth'],tags['EXIFExifImageLength'])
#获取经度或纬度
defgetLatOrLng(refKey,tudeKey):
ifrefKeynotintags:
returnNone
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
ifrefKey=='GPSGPSLatitudeRef'andtags[refKey].printable!="N":
LatOrLng=LatOrLng*(-1)
ifrefKey=='GPSGPSLongitudeRef'andtags[refKey].printable!="E":
LatOrLng=LatOrLng*(-1)
returnLatOrLng
#调用百度地图API通过经纬度获取位置
defgetlocation(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')
returnformatted_address
lat=getLatOrLng('GPSGPSLatitudeRef','GPSGPSLatitude')#纬度
lng=getLatOrLng('GPSGPSLongitudeRef','GPSGPSLongitude')#经度
print('纬度:{}经度:{}'.format(lat,lng))
location=getlocation(str(lat),str(lng))
print('位置:{}'.format(location))
以上就是python通过exifread读取照片信息的详细内容,更多关于python读取照片信息的资料请关注毛票票其它相关文章!