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 相关文章推荐
python3抓取中文网页的方法
Jul 28 Python
分享Python开发中要注意的十个小贴士
Aug 30 Python
使用pygame模块编写贪吃蛇的实例讲解
Feb 05 Python
Python numpy实现二维数组和一维数组拼接的方法
Jun 05 Python
使用Python来开发微信功能
Jun 13 Python
python 正确保留多位小数的实例
Jul 16 Python
Python单元测试unittest的具体使用示例
Dec 17 Python
Python函数的参数常见分类与用法实例详解
Mar 30 Python
python找出因数与质因数的方法
Jul 25 Python
Python Websocket服务端通信的使用示例
Feb 25 Python
python爬取股票最新数据并用excel绘制树状图的示例
Mar 01 Python
Jupyter安装拓展nbextensions及解决官网下载慢的问题
Mar 03 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
拼音码表的生成
2006/10/09 PHP
使用PHP遍历文件夹与子目录的函数代码
2011/09/26 PHP
PHP连接和操作MySQL数据库基础教程
2014/09/29 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
2014/10/26 PHP
php+html5基于websocket实现聊天室的方法
2015/07/17 PHP
PHP中Array相关函数简介
2016/07/03 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
Add Formatted Text to a Word Document
2007/06/15 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
node.js入门实例helloworld详解
2015/12/23 Javascript
jQuery实现一个简单的轮播图
2017/02/19 Javascript
自定义vue全局组件use使用、vuex的使用详解
2017/06/14 Javascript
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
react-native组件中NavigatorIOS和ListView结合使用的方法
2017/09/30 Javascript
JavaScript设计模式之单例模式简单实例教程
2018/07/02 Javascript
Vue配合iView实现省市二级联动的示例代码
2018/07/27 Javascript
Vue下拉框回显并默认选中随机问题
2018/09/06 Javascript
详解django模板与vue.js冲突问题
2019/07/07 Javascript
js实现查询商品案例
2020/07/22 Javascript
Node.JS如何实现JWT原理
2020/09/18 Javascript
[57:24]LGD vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
从零学Python之入门(三)序列
2014/05/25 Python
Python实现FTP上传文件或文件夹实例(递归)
2017/01/16 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
让IE6、IE7、IE8支持CSS3的脚本
2010/07/20 HTML / CSS
canvas 如何绘制线段的实现方法
2018/07/12 HTML / CSS
JACK & JONES瑞典官方网站:杰克琼斯欧式风格男装
2017/12/23 全球购物
给水工程专业毕业生自荐信
2014/01/28 职场文书
文案策划求职信
2014/04/14 职场文书
大学生入党推荐书范文
2014/05/17 职场文书
2014年十八届四中全会思想汇报范文
2014/10/17 职场文书
党校个人总结
2015/03/04 职场文书
计算机专业自荐信范文
2015/03/26 职场文书
2019年度行政文员工作计划范本!
2019/07/04 职场文书
Go语言操作数据库及其常规操作的示例代码
2021/04/21 Golang