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高级应用实例对比:高效计算大文件中的最长行的长度
Jun 08 Python
Python将阿拉伯数字转换为罗马数字的方法
Jul 10 Python
基于Python实现文件大小输出
Jan 11 Python
python使用电子邮件模块smtplib的方法
Aug 28 Python
Python pymongo模块用法示例
Mar 31 Python
彻彻底底地理解Python中的编码问题
Oct 15 Python
Django admin model 汉化显示文字的实现方法
Aug 12 Python
python网络编程 使用UDP、TCP协议收发信息详解
Aug 29 Python
python爬虫之遍历单个域名
Nov 20 Python
使用Tensorboard工具查看Loss损失率
Feb 15 Python
Python pandas 列转行操作详解(类似hive中explode方法)
May 18 Python
Python+PyQt5实现灭霸响指功能
May 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文件上传表单摘自drupal的代码
2011/02/15 PHP
Zend Studio去除编辑器的语法警告设置方法
2012/10/24 PHP
php使用ICQ网关发送手机短信
2013/10/30 PHP
PHP获取数组最大值下标的方法
2015/05/12 PHP
PHP入门教程之面向对象基本概念实例分析
2016/09/11 PHP
PHP带节点操作的无限分类实现方法详解
2016/11/09 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
2016/12/19 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
2020/02/06 PHP
jquery选择器、属性设置用法经验总结
2013/09/08 Javascript
将json当数据库一样操作的javascript lib
2013/10/28 Javascript
jQuery实现动画效果的简单实例
2014/01/27 Javascript
基于jquery的simpleValidate简易验证插件
2014/01/31 Javascript
JS 排序输出实现table行号自增前端动态生成的tr
2014/08/13 Javascript
express的中间件basicAuth详解
2014/12/04 Javascript
无缝滚动的简单实现代码(推荐)
2016/06/07 Javascript
javascript基础进阶_深入剖析执行环境及作用域链
2017/09/05 Javascript
JS遍历JSON数组及获取JSON数组长度操作示例【测试可用】
2018/12/12 Javascript
JavaScript中的Proxy对象
2020/11/27 Javascript
十个Python程序员易犯的错误
2015/12/15 Python
pyspark 读取csv文件创建DataFrame的两种方法
2018/06/07 Python
Python数学形态学实例分析
2019/09/06 Python
Python高级property属性用法实例分析
2019/11/19 Python
python 导入数据及作图的实现
2019/12/03 Python
TensorFlow实现保存训练模型为pd文件并恢复
2020/02/06 Python
python实现根据给定坐标点生成多边形mask的例子
2020/02/18 Python
Converse匡威法国官网:美国著名帆布鞋品牌
2018/12/05 全球购物
暑期社会实践方案
2014/02/05 职场文书
生日庆典策划方案
2014/06/02 职场文书
2014年共青团工作总结
2014/12/10 职场文书
人才市场接收函
2015/01/30 职场文书
实名检举信范文
2015/03/02 职场文书
2015年度工程师评职称工作总结
2015/10/14 职场文书
同学聚会开幕词
2019/04/02 职场文书
mysql死锁和分库分表问题详解
2021/04/16 MySQL
浅析Python中的随机采样和概率分布
2021/12/06 Python
React更新渲染原理深入分析
2022/12/24 Javascript