Python 图片处理库exifread详解


Posted in Python onFebruary 25, 2021

【导语】:用 python 怎样获得图片的GPS信息?今天推荐一下 exifread 这个神奇的库,不仅仅是 GPS 信息,几乎能能获得图片的所有信息,快进来看看!!

要怎样获得拍摄图片的GPS呢?这里我们需要exifread 库,这个就是用来提取 GPS 信息的。直接 pip install exifread 来安装就好了。

其实不仅能获得GPS信息,图片的几乎所有信息都能获得。exifread的作用其实是代替了查看图片属性!如下图:

Python 图片处理库exifread详解

这里用在三亚拍的骆驼照片来做个演示,看看能不能定位到三亚。

注:如果图片被压缩了的话会破坏里面的二进制信息,肯定就不能提取了哦!

Python 图片处理库exifread详解

原理是: 先把图片以二进制的格式读取出来,然后通过 exifread 库把里面的 GPS 信息提取出来,再以特定的格式打印出来,最后直接复制里面的经纬度信息,在支持通过经纬度来查位置的地图里一查就能定位到了。

exifread库读取图片的二进制示例:

Python 图片处理库exifread详解

具体代码如下

import exifread
import re

# 读取图片为二进制格式
f = open("luotuo.JPG","rb")
tags = exifread.process_file(f)

# GPS信息
GPS = {}

# 拍摄时间
Data = ""

for tag,value in tags.items():
 # 获取纬度信息
 if re.match('GPS GPSLatitude', tag):
  try:
   match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]', str(value)).groups()
   GPS['纬度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
  except:
   GPS['纬度'] = str(value)
 # 获取纬度信息
 elif re.match('GPS GPSLongitude', tag):
  try:
   match_result=re.match('\[(\w*), (\w*), (\w.*)/(\w.*)\]',str(value)).groups()
   GPS['经度'] = str(int(match_result[0])) + " " + str(int(match_result[1])) + " " + str(int(match_result[2])/int(match_result[3]))
  except:
   GPS['经度'] = str(value)
 # 获取高度
 elif re.match('GPS GPSAltitude', tag):
  GPS['高度'] = str(value)
 # 获取拍摄时间
 elif re.match('Image DateTime', tag):
  Data = str(value)

# 打印信息
print("纬 经 度:" + GPS['纬度'] + "," + GPS['经度'])
print("拍摄时间:" + Data)

如图所示,读取后的纬经度信息直接就显示出来了

Python 图片处理库exifread详解

拓展1: 后期我们可以通过百度提供的 API 接口直接把经纬度转换为具体的地点。大家可以自己来尝试一下!

拓展2: 当然,你右键图片属性的详细信息里也有这些信息。

如果想保密的话,直接点击删除属性和个人信息就能能把信息删掉。

Python 图片处理库exifread详解

到此这篇关于Python 图片处理库exifread详解的文章就介绍到这了,更多相关Python 图片处理库exifread内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
对python 多个分隔符split 的实例详解
Dec 20 Python
树莓派用python中的OpenCV输出USB摄像头画面
Jun 22 Python
Python实用库 PrettyTable 学习笔记
Aug 06 Python
django fernet fields字段加密实践详解
Aug 12 Python
docker-py 用Python调用Docker接口的方法
Aug 30 Python
python中bytes和str类型的区别
Oct 21 Python
Python中__repr__和__str__区别详解
Nov 07 Python
Python气泡提示与标签的实现
Apr 01 Python
基于python 取余问题(%)详解
Jun 03 Python
python中round函数如何使用
Jun 19 Python
详解python os.path.exists判断文件或文件夹是否存在
Nov 16 Python
详解java调用python的几种用法(看这篇就够了)
Dec 10 Python
python中if嵌套命令实例讲解
Feb 25 #Python
Matplotlib animation模块实现动态图
Feb 25 #Python
python连接手机自动搜集蚂蚁森林能量的实现代码
Feb 24 #Python
Python爬取你好李焕英豆瓣短评生成词云的示例代码
Feb 24 #Python
用pip给python安装matplotlib库的详细教程
Feb 24 #Python
matplotlib 范围选区(SpanSelector)的使用
Feb 24 #Python
matplotlib之多边形选区(PolygonSelector)的使用
Feb 24 #Python
You might like
PHP实现下载功能的代码
2012/09/29 PHP
php中autoload的用法总结
2013/11/08 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
js检测客户端不是firefox则提示下载
2007/04/07 Javascript
jquery 模拟类搜索框自动完成搜索提示功能(改进)
2010/05/24 Javascript
node.js中的fs.lchmodSync方法使用说明
2014/12/16 Javascript
jQuery的animate函数实现图文切换动画效果
2015/05/03 Javascript
谷歌Chrome浏览器扩展程序开发小记
2016/01/06 Javascript
js实现页面跳转的五种方法推荐
2016/03/10 Javascript
json传值以及ajax接收详解
2016/05/24 Javascript
js轮播图代码分享
2016/07/14 Javascript
全面介绍javascript实用技巧及单竖杠
2016/07/18 Javascript
three.js 入门案例详解
2018/01/23 Javascript
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python安装Imaging报错:The _imaging C module is not installed问题解决方法
2014/08/22 Python
python写入xml文件的方法
2015/05/08 Python
Python实现高效求解素数代码实例
2015/06/30 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
深入了解和应用Python 装饰器 @decorator
2019/04/02 Python
python 实现让字典的value 成为列表
2019/12/16 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
澳大利亚首屈一指的鞋类品牌:Tony Bianco
2018/03/13 全球购物
Erwin Müller穆勒家居瑞士官网:您整个家庭的邮购公司
2019/12/28 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
华为慧通面试题
2012/09/11 面试题
采购员岗位职责
2013/11/15 职场文书
应届生求职信
2014/05/31 职场文书
汉语专业毕业生自荐信
2014/07/06 职场文书
退休党员个人对照检查材料思想汇报
2014/09/29 职场文书
认真学习保证书
2015/02/26 职场文书
建议书的格式及范文
2015/09/14 职场文书
2021好看的国漫排行榜前十名 《完美世界》上榜,《元龙》排名第一
2022/03/18 国漫
SQL Server Agent 服务无法启动
2022/04/20 SQL Server
SpringBoot项目多数据源及mybatis 驼峰失效的问题解决方法
2022/07/07 Java/Android
html原生table实现合并单元格以及合并表头的示例代码
2023/05/07 HTML / CSS