ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 读取照片的信息:拍摄时间、拍摄设备、经纬度等,以及根据经纬度通过百度地图API获取位置

2019-09-25 10:09:08  阅读:267  来源: 互联网

标签:拍摄 经纬度 tags Python refKey exifread print LatOrLng GPS


通过第三方库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))
最后,小编想说一句话:我是一名python开发工程师,整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习,面试宝典,面试宝典,面试宝典。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取

标签:拍摄,经纬度,tags,Python,refKey,exifread,print,LatOrLng,GPS
来源: https://blog.csdn.net/LLand520/article/details/101347077

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有