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中无限元素列表的实现方法
Aug 18 Python
使用Python操作Elasticsearch数据索引的教程
Apr 08 Python
理解生产者消费者模型及在Python编程中的运用实例
Jun 26 Python
python实现下载整个ftp目录的方法
Jan 17 Python
python获取网页中所有图片并筛选指定分辨率的方法
Mar 31 Python
Python中一行和多行import模块问题
Apr 01 Python
python引入不同文件夹下的自定义模块方法
Oct 27 Python
解决python3运行selenium下HTMLTestRunner报错的问题
Dec 27 Python
对python指数、幂数拟合curve_fit详解
Dec 29 Python
Python当中的array数组对象实例详解
Jun 12 Python
Python requests.post方法中data与json参数区别详解
Apr 30 Python
Pandas对每个分组应用apply函数的实现
Dec 13 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
这东西价格,可以买几台TECSUN S-2000
2021/03/02 无线电
php调用mysql存储过程
2007/02/14 PHP
PHP $_FILES函数详解
2011/03/09 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
ThinkPHP中limit()使用方法详解
2016/04/19 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
php使用 readfile() 函数设置文件大小大小的方法
2017/08/11 PHP
javascript 类型判断代码分析
2010/03/28 Javascript
网易JS面试题与Javascript词法作用域说明
2010/11/09 Javascript
JS中表单的使用小结
2014/01/11 Javascript
jQuery提示插件alertify使用指南
2015/04/21 Javascript
Jquery实现简单的轮播效果(代码管用)
2016/03/14 Javascript
解决使用vue.js路由后失效的问题
2018/03/17 Javascript
Python中使用glob和rmtree删除目录子目录及所有文件的例子
2014/11/21 Python
Python选择排序、冒泡排序、合并排序代码实例
2015/04/10 Python
python通过socket查询whois的方法
2015/07/18 Python
简单的python后台管理程序
2017/04/13 Python
Python编程flask使用页面模版的方法
2018/12/28 Python
简单了解python关系(比较)运算符
2019/07/08 Python
pip安装python库的方法总结
2019/08/02 Python
python中的数组赋值与拷贝的区别详解
2019/11/26 Python
Python内置数据类型list各方法的性能测试过程解析
2020/01/07 Python
详解win10下pytorch-gpu安装以及CUDA详细安装过程
2021/01/28 Python
CSS3动画之利用requestAnimationFrame触发重新播放功能
2019/09/11 HTML / CSS
html5配合css3实现带提示文字的输入框(摆脱js)
2013/03/08 HTML / CSS
html5贪吃蛇游戏使用63行代码完美实现
2013/06/25 HTML / CSS
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
HTML5适合的情人节礼物有纪念日期功能
2021/01/25 HTML / CSS
猫咪家具:CatsPlay
2018/11/03 全球购物
澳大利亚在线奢侈品时尚零售平台:Azura Runway
2021/01/13 全球购物
数据库什么时候应该被重组
2012/11/02 面试题
实习生的自我评价
2014/01/08 职场文书
党员三严三实心得体会
2014/10/13 职场文书
私用公车造成事故检讨书
2014/11/16 职场文书
2015年秋季小班开学寄语
2015/05/27 职场文书
七个Python必备的GUI库
2021/04/27 Python