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 相关文章推荐
Django发送html邮件的方法
May 26 Python
详解python之多进程和进程池(Processing库)
Jun 09 Python
python使用os.listdir和os.walk获得文件的路径的方法
Dec 16 Python
python利用smtplib实现QQ邮箱发送邮件
May 20 Python
Python后台开发Django的教程详解(启动)
Apr 08 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
Python绘制股票移动均线的实例
Aug 24 Python
Python2与Python3的区别详解
Feb 09 Python
python学生管理系统的实现
Apr 05 Python
python使用列表的最佳方案
Aug 12 Python
python 基于selectors库实现文件上传与下载
Dec 31 Python
python实现代码审查自动回复消息
Feb 01 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输出控制功能在简繁体转换中的应用
2006/10/09 PHP
curl不使用文件存取cookie php使用curl获取cookie示例
2014/01/26 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
PHP中使用mpdf 导出PDF文件的实现方法
2018/10/22 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
jquery 弹出层注册页面等(asp.net后台)
2010/06/17 Javascript
基于JavaScript 声明全局变量的三种方式详解
2013/05/07 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
Jquery组件easyUi实现手风琴(折叠面板)示例
2016/08/23 Javascript
AngularJS API之copy深拷贝详解及实例
2016/09/14 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
微信公众号 摇一摇周边功能开发
2016/12/08 Javascript
Jquery获取radio选中的值
2017/05/05 jQuery
微信小程序中做用户登录与登录态维护的实现详解
2017/05/17 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
JavaScript文件的同步和异步加载的实现代码
2017/08/19 Javascript
关于预加载InstantClick的问题解决方法
2017/09/12 Javascript
react-router4 配合webpack require.ensure 实现异步加载的示例
2018/01/18 Javascript
Vue.directive使用注意(小结)
2018/08/31 Javascript
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
Element Badge标记的使用方法
2020/07/27 Javascript
[01:18:43]2014 DOTA2华西杯精英邀请赛5 24 iG VS DK
2014/05/25 DOTA
Python获取远程文件大小的函数代码分享
2014/05/13 Python
Python实现删除当前目录下除当前脚本以外的文件和文件夹实例
2015/07/27 Python
Python的dict字典结构操作方法学习笔记
2016/05/07 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python+ffmpeg视频并发直播压力测试
2018/03/06 Python
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
2018/04/18 Python
文明学生标兵事迹
2014/01/21 职场文书
仓库主管岗位职责
2014/03/02 职场文书
网络技术专业求职信
2014/05/02 职场文书
蛋糕店创业计划书范文
2014/09/21 职场文书
少先队工作总结2015
2015/05/13 职场文书
Python爬虫爬取全球疫情数据并存储到mysql数据库的步骤
2021/03/29 Python
利用 JavaScript 构建命令行应用
2021/11/17 Javascript
Java 在线考试云平台的实现
2021/11/23 Java/Android