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实现的数据结构与算法之快速排序详解
Apr 22 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
Python中内建函数的简单用法说明
May 05 Python
Python中强大的命令行库click入门教程
Dec 26 Python
Python针对给定字符串求解所有子序列是否为回文序列的方法
Apr 21 Python
解决pycharm运行出错,代码正确结果不显示的问题
Nov 30 Python
对python中Librosa的mfcc步骤详解
Jan 09 Python
Win10下Python3.7.3安装教程图解
Jul 08 Python
django admin.py 外键,反向查询的实例
Jul 26 Python
python global和nonlocal用法解析
Feb 03 Python
超级实用的8个Python列表技巧
Aug 24 Python
详解Pycharm与anaconda安装配置指南
Aug 25 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中使用Oracle数据库(5)
2006/10/09 PHP
使用PHP实现蜘蛛访问日志统计
2013/07/05 PHP
使用淘宝IP库获取用户ip地理位置
2013/10/27 PHP
PHP的preg_match匹配字符串长度问题解决方法
2014/05/03 PHP
PHP的mysqli_query参数MYSQLI_STORE_RESULT和MYSQLI_USE_RESULT的区别
2014/09/29 PHP
Yii2压缩PHP中模板代码的输出问题
2018/08/28 PHP
详解no input file specified 三种解决方法
2019/11/29 PHP
JavaScript继承方式实例
2010/10/29 Javascript
showModalDialog模态对话框的使用详解以及浏览器兼容
2014/01/11 Javascript
js获取url中"?"后面的字串方法
2014/05/15 Javascript
Javascript图片上传前的本地预览实例
2014/06/16 Javascript
js实现完全自定义可带多级目录的网页鼠标右键菜单方法
2015/02/28 Javascript
jQuery检查事件是否触发的方法
2015/06/26 Javascript
JavaScript中innerHTML,innerText,outerHTML的用法及区别
2015/09/01 Javascript
JS实现密码框根据焦点的获取与失去控制文字的消失与显示效果
2015/11/26 Javascript
Underscore源码分析
2015/12/30 Javascript
Vue+Element使用富文本编辑器的示例代码
2017/08/14 Javascript
angular或者js怎么确定选中ul中的哪几个li
2017/08/16 Javascript
js 概率计算(简单版)
2017/09/12 Javascript
小程序实现多列选择器
2019/02/15 Javascript
express中static中间件的具体使用方法
2019/10/17 Javascript
python备份文件的脚本
2008/08/11 Python
Python 2.x如何设置命令执行的超时时间实例
2017/10/19 Python
R语言 vs Python对比:数据分析哪家强?
2017/11/17 Python
python利用requests库进行接口测试的方法详解
2018/07/06 Python
解决Python 中英文混输格式对齐的问题
2018/07/16 Python
Python实现EXCEL表格的排序功能示例
2019/06/25 Python
Python实现基于SVM的分类器的方法
2019/07/19 Python
python 标准差计算的实现(std)
2019/07/29 Python
python encrypt 实现AES加密的实例详解
2020/02/20 Python
商场拾金不昧表扬信
2014/01/13 职场文书
2014年行政工作总结
2014/11/19 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
ObjectMapper 如何忽略字段大小写
2021/06/29 Java/Android
教你使用vscode 搭建react-native开发环境
2021/07/07 Javascript
CentOS 7安装mysql5.7使用XtraBackUp备份工具命令详解
2022/04/12 MySQL