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 解析html之BeautifulSoup
Jul 07 Python
tornado框架blog模块分析与使用
Nov 21 Python
Python os模块学习笔记
Jun 21 Python
Python cx_freeze打包工具处理问题思路及解决办法
Feb 13 Python
Python使用Tkinter实现机器人走迷宫
Jan 22 Python
python basemap 画出经纬度并标定的实例
Jul 09 Python
Django使用中间件解决前后端同源策略问题
Sep 02 Python
Python 函数用法简单示例【定义、参数、返回值、函数嵌套】
Sep 20 Python
tensorflow tf.train.batch之数据批量读取方式
Jan 20 Python
python实现吃苹果小游戏
Mar 21 Python
解决Jupyter NoteBook输出的图表太小看不清问题
Apr 16 Python
python 如何调用 dubbo 接口
Sep 24 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
如何将数据从文本导入到mysql
2006/10/09 PHP
php设置允许大文件上传示例代码
2014/03/10 PHP
PHP获取文件扩展名的常用方法小结【五种方式】
2018/04/27 PHP
PHP实现Snowflake生成分布式唯一ID的方法示例
2020/08/30 PHP
jqPlot Option配置对象详解
2009/07/25 Javascript
jquery isEmptyObject判断是否为空对象的函数
2011/02/14 Javascript
jQuery Jcrop插件实现图片选取功能
2011/11/23 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
javascript实现控制浏览器全屏
2015/03/30 Javascript
js模拟淘宝网的多级选择菜单实现方法
2015/08/18 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
关于在vue-cli中使用微信自动登录和分享的实例
2017/06/22 Javascript
如何理解Vue的作用域插槽的实现原理
2017/08/19 Javascript
js 倒计时(高效率服务器时间同步)
2017/09/12 Javascript
解决nodejs的npm命令无反应的问题
2018/05/17 NodeJs
jQuery实现表单动态添加数据并提交的方法
2018/07/19 jQuery
Angular6 写一个简单的Select组件示例
2018/08/20 Javascript
在Linux下使用Python的matplotlib绘制数据图的教程
2015/06/11 Python
Python实现学生成绩管理系统
2020/04/05 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
详解Python的三种可变参数
2019/05/08 Python
Python 20行简单实现有道在线翻译的详解
2019/05/15 Python
对django views中 request, response的常用操作详解
2019/07/17 Python
Pytorch 中retain_graph的用法详解
2020/01/07 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
python在不同条件下的输入与输出
2020/02/13 Python
Django基于客户端下载文件实现方法
2020/04/21 Python
python3让print输出不换行的方法
2020/08/24 Python
Diamondback自行车:拥有你的冒险
2019/04/22 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
简历自我评价模版
2014/01/31 职场文书
网络编辑岗位职责范本
2014/02/10 职场文书
2014年两会学习心得体会
2014/03/17 职场文书
幼儿园老师寄语
2014/04/03 职场文书
爱的奉献演讲稿
2014/09/10 职场文书
2014年平安建设工作总结
2014/11/19 职场文书