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保存网页上的图片或者保存页面为截图
Mar 05 Python
深入理解Python中装饰器的用法
Jun 28 Python
分享python数据统计的一些小技巧
Jul 21 Python
python构建自定义回调函数详解
Jun 20 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
python障碍式期权定价公式
Jul 19 Python
Python 操作mysql数据库查询之fetchone(), fetchmany(), fetchall()用法示例
Oct 17 Python
python3 图片 4通道转成3通道 1通道转成3通道 图片压缩实例
Dec 03 Python
如何基于python3和Vue实现AES数据加密
Mar 27 Python
keras自定义损失函数并且模型加载的写法介绍
Jun 15 Python
python能做哪些生活有趣的事情
Sep 09 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环境配置 php5 MySQL5 apache2 phpmyadmin安装与配置图文教程
2007/03/16 PHP
如何使用PHP实现javascript的escape和unescape函数
2013/06/29 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
php上传文件并存储到mysql数据库的方法
2015/03/16 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
CodeIgniter针对数据库的连接、配置及使用方法
2016/03/03 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
js switch case default 的用法示例介绍
2013/10/23 Javascript
jQuery实现平滑滚动到指定锚点的方法
2015/03/20 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
AngularJS ng-mousedown 指令
2016/08/02 Javascript
jQuery弹出层插件popShow(改进版)用法示例
2017/01/23 Javascript
微信小程序 弹框和模态框实现代码
2017/03/10 Javascript
关于 angularJS的一些用法
2017/11/29 Javascript
vue 实现模糊检索并根据其他字符的首字母顺序排列
2019/09/19 Javascript
Python中数字以及算数运算符的相关使用
2015/10/12 Python
python的中异常处理机制
2018/08/30 Python
Python Scapy随心所欲研究TCP协议栈
2018/11/20 Python
对PyQt5中树结构的实现方法详解
2019/06/17 Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
2020/07/13 Python
Numpy ndarray 多维数组对象的使用
2021/02/10 Python
使用CSS3美化HTML表单的技巧演示
2016/05/17 HTML / CSS
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
UGG雪地靴荷兰官网:UGG荷兰
2016/09/09 全球购物
毕业生幼师求职自荐信
2013/10/01 职场文书
后勤副校长自我鉴定
2013/10/13 职场文书
总经理驾驶员岗位职责
2013/12/04 职场文书
经典大学生求职信范文
2014/01/06 职场文书
网站创业计划书
2014/04/30 职场文书
县政协领导班子群众路线教育实践活动四风问题整改方案
2014/10/26 职场文书
2014年学校财务工作总结
2014/12/06 职场文书
稽核岗位职责
2015/02/10 职场文书
使用feign服务调用添加Header参数
2021/06/23 Java/Android
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android