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中PIL安装简单教程
Apr 21 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
基于Python的XSS测试工具XSStrike使用方法
Jul 29 Python
详解Python判定IP地址合法性的三种方法
Mar 06 Python
Python字典的核心底层原理讲解
Jan 24 Python
了解不常见但是实用的Python技巧
May 23 Python
pyinstaller参数介绍以及总结详解
Jul 12 Python
python opencv将图片转为灰度图的方法示例
Jul 31 Python
如何解决安装python3.6.1失败
Jul 01 Python
详解python算法常用技巧与内置库
Oct 17 Python
python调用jenkinsAPI构建jenkins,并传递参数的示例
Dec 09 Python
Pytorch 如何实现LSTM时间序列预测
May 17 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 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
laravel实现分页样式替换示例代码(增加首、尾页)
2017/09/22 PHP
js 多浏览器分别判断代码
2010/04/01 Javascript
Jquery调用webService远程访问出错的解决方法
2010/05/21 Javascript
jquery操作 iframe的方法
2014/12/03 Javascript
nodejs模块学习之connect解析
2017/07/05 NodeJs
three.js中文文档学习之通过模块导入
2017/11/20 Javascript
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
JS获取今天是本月第几周、本月共几周、本月有多少天、是今年的第几周、是今年的第几天的示例代码
2018/12/05 Javascript
node.js连接mysql与基本用法示例
2019/01/05 Javascript
vue中的过滤器及其时间格式化问题
2020/04/09 Javascript
基于postman获取动态数据过程详解
2020/09/08 Javascript
Vue自定义表单内容检查rules实例
2020/10/30 Javascript
python读写ini文件示例(python读写文件)
2014/03/25 Python
Python与R语言的简要对比
2017/11/14 Python
Python异常处理操作实例详解
2018/05/10 Python
python 遍历目录(包括子目录)下所有文件的实例
2018/07/11 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
Python实现银行账户资金交易管理系统
2020/01/03 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
浅析matlab中imadjust函数
2020/02/27 Python
python中pyplot基础图标函数整理
2020/11/10 Python
英国邮购活的植物主要供应商:Gardening Direct
2019/01/28 全球购物
世界领先的豪华床上用品供应商之一:Bedeck Home
2019/03/18 全球购物
乔迁之喜主持词
2014/03/27 职场文书
创业培训计划书
2014/05/03 职场文书
医师定期考核实施方案
2014/05/07 职场文书
企业文化演讲稿
2014/05/20 职场文书
环保项目建议书
2014/08/26 职场文书
环境工程专业毕业生求职信
2014/09/30 职场文书
热情服务标语
2014/10/07 职场文书
自荐信范文
2019/05/20 职场文书
CSS3 制作的书本翻页特效
2021/04/13 HTML / CSS
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js