python 通过exifread读取照片信息


Posted in Python onDecember 24, 2020

通过第三方库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 通过exifread读取照片信息的详细内容,更多关于python 读取照片信息的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python的一些用法分享
Oct 07 Python
Python操作RabbitMQ服务器实现消息队列的路由功能
Jun 29 Python
Python使用functools模块中的partial函数生成偏函数
Jul 02 Python
Python遍历目录中的所有文件的方法
Jul 08 Python
Python3处理HTTP请求的实例
May 10 Python
python集合比较(交集,并集,差集)方法详解
Sep 13 Python
pyqt 实现在Widgets中显示图片和文字的方法
Jun 13 Python
Flask框架请求钩子与request请求对象用法实例分析
Nov 07 Python
如何基于Python批量下载音乐
Nov 11 Python
python实现批量处理将图片粘贴到另一张图片上并保存
Dec 12 Python
如何理解python面向对象编程
Jun 01 Python
OpenCV-Python实现人脸磨皮算法
Jun 07 Python
python 如何上传包到pypi
Dec 24 #Python
python 基于PYMYSQL使用MYSQL数据库
Dec 24 #Python
python xlsxwriter模块的使用
Dec 24 #Python
想学画画?python满足你!
Dec 24 #Python
Python 爬虫批量爬取网页图片保存到本地的实现代码
Dec 24 #Python
用python获取txt文件中关键字的数量
Dec 24 #Python
举例讲解Python装饰器
Dec 24 #Python
You might like
牡丹941资料
2021/03/01 无线电
PHP用星号隐藏部份用户名、身份证、IP、手机号等实例
2014/04/08 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
ymPrompt的doHandler方法来实现获取子窗口返回值的方法
2010/06/25 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
javascript学习笔记(八)正则表达式
2014/10/08 Javascript
解决jQuery uploadify在非IE核心浏览器下无法上传
2015/08/05 Javascript
JavaScript与jQuery实现的闪烁输入效果
2016/02/18 Javascript
JavaScript实现多种排序算法
2016/02/24 Javascript
js利用正则表达式检验输入内容是否为网址
2016/07/05 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
jQuery插件ajaxFileUpload使用详解
2017/01/10 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
vue 组件中使用 transition 和 transition-group实现过渡动画
2019/07/09 Javascript
微信小程序自定义modal弹窗组件的方法详解
2020/12/20 Javascript
Python标准库os.path包、glob包使用实例
2014/11/25 Python
Python 的描述符 descriptor详解
2016/02/27 Python
使用python将大量数据导出到Excel中的小技巧分享
2018/06/14 Python
python 字典的打印实现
2019/09/26 Python
python3.7 openpyxl 删除指定一列或者一行的代码
2019/10/08 Python
Python读取表格类型文件代码实例
2020/02/17 Python
Django-Scrapy生成后端json接口的方法示例
2020/10/06 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
英国第一摩托车和摩托车越野配件商店:GhostBikes
2019/03/10 全球购物
电子商务应届生求职信
2013/11/16 职场文书
会计大学生职业生涯规划书范文
2014/01/13 职场文书
校庆筹备方案
2014/03/30 职场文书
行政求职信
2014/07/04 职场文书
大学生个人求职信例文
2014/07/07 职场文书
作风建设整改方案
2014/10/27 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
主持稿开场白
2015/06/01 职场文书
新员工入职感言范文!
2019/07/04 职场文书
导游词之杭州岳王庙
2019/11/13 职场文书