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 11 Python
使用Python下的XSLT API进行web开发的简单教程
Apr 15 Python
用Python登录好友QQ空间点赞的示例代码
Nov 04 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
python3+PyQt5实现自定义窗口部件Counters
Apr 20 Python
pandas中apply和transform方法的性能比较及区别介绍
Oct 30 Python
python同时遍历数组的索引和值的实例
Nov 15 Python
virtualenv介绍及简明教程
Jun 23 Python
Python绘图之柱形图绘制详解
Jul 28 Python
python通过函数名调用函数的几种场景
Sep 23 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 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
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
PHP 日,周,月点击排行统计
2012/01/11 PHP
CodeIgniter实现从网站抓取图片并自动下载到文件夹里的方法
2015/06/17 PHP
php 计算两个时间相差的天数、小时数、分钟数、秒数详解及实例代码
2016/11/09 PHP
php简单处理XML数据的方法示例
2017/05/19 PHP
PHP swoole和redis异步任务实现方法分析
2019/08/12 PHP
JavaScript 实现??打印?理
2007/04/28 Javascript
Jquery乱码的一次解决过程 图解教程
2010/02/20 Javascript
详解AngularJS的通信机制
2015/06/18 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
WebView启动支付宝客户端支付失败的问题小结
2017/01/11 Javascript
Node.js 实现简单的接口服务器的实例代码
2017/05/23 Javascript
利用JavaScript如何查询某个值是否数组内
2017/07/30 Javascript
利用vscode调试编译后的js代码详解
2018/05/14 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
koa-router源码学习小结
2018/09/07 Javascript
Vue + Element UI图片上传控件使用详解
2019/08/20 Javascript
vue的滚动条插件实现代码
2019/09/07 Javascript
python分割文件的常用方法
2014/11/01 Python
使用Python将数组的元素导出到变量中(unpacking)
2016/10/27 Python
浅谈python 导入模块和解决文件句柄找不到问题
2018/12/15 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
html5使用canvas实现跟随光标跳动的火焰效果
2014/01/07 HTML / CSS
名词解释WEB SERVICE,SOAP,UDDI,WSDL,JAXP,JAXM;JSWDL开发包的介绍。
2012/10/27 面试题
大学生自我鉴定
2013/12/16 职场文书
高三地理教学反思
2014/01/11 职场文书
少年闰土教学反思
2014/02/22 职场文书
汽车专业求职信
2014/06/05 职场文书
学校党风廉政建设调研报告
2015/01/01 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
MySQL8.0的WITH查询详情
2021/08/30 MySQL
redis调用二维码时的不断刷新排查分析
2022/04/01 Redis
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
浅谈Redis变慢的原因及排查方法
2022/06/21 Redis