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中__call__用法实例
Aug 29 Python
栈和队列数据结构的基本概念及其相关的Python实现
Aug 24 Python
python在非root权限下的安装方法
Jan 23 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
Python判断一个文件夹内哪些文件是图片的实例
Dec 07 Python
python ChainMap 合并字典的实现步骤
Jun 11 Python
pyqt5实现绘制ui,列表窗口,滚动窗口显示图片的方法
Jun 20 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
python3获取文件中url内容并下载代码实例
Dec 27 Python
基于Python数据结构之递归与回溯搜索
Feb 26 Python
python接口自动化框架实战
Dec 23 Python
对PyTorch中inplace字段的全面理解
May 22 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文件中是否含有bom的函数
2012/05/31 PHP
php笔记之:AOP的应用
2013/04/24 PHP
java模拟PHP的pack和unpack类
2016/04/13 PHP
让任务管理器中的CPU跳舞的js代码
2008/11/01 Javascript
JQuery入门——移除绑定事件unbind方法概述及应用
2013/02/05 Javascript
Javascript 赋值机制详解
2014/11/23 Javascript
JavaScript实现图片瀑布流和底部刷新
2017/01/02 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
C#微信小程序服务端获取用户解密信息实例代码
2017/03/10 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
利用JavaScript实现栈的数据结构示例代码
2017/08/02 Javascript
基于vue-video-player自定义播放器的方法
2018/03/21 Javascript
vue中如何实现后台管理系统的权限控制的方法步骤
2019/09/05 Javascript
详解小程序云开发攻略(解决最棘手的问题)
2019/09/30 Javascript
浅谈vue异步数据影响页面渲染
2019/10/29 Javascript
JS实现前端动态分页码代码实例
2020/06/02 Javascript
深入分析jQuery.one() 函数
2020/06/03 jQuery
angular8.5集成TinyMce5的使用和详细配置(推荐)
2020/11/16 Javascript
Python基本数据类型详细介绍
2014/03/11 Python
Python Socket编程入门教程
2014/07/11 Python
python调用机器喇叭发出蜂鸣声(Beep)的方法
2015/03/23 Python
Python实现将sqlite数据库导出转成Excel(xls)表的方法
2017/07/17 Python
通过 Django Pagination 实现简单分页功能
2019/11/11 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
MoviePy常用剪辑类及Python视频剪辑自动化
2020/12/18 Python
加拿大在线隐形眼镜专家:PerfectLens.ca
2016/11/19 全球购物
越南母婴用品购物网站:Kids Plaza
2020/04/09 全球购物
机械专业个人求职自荐信格式
2013/09/21 职场文书
饲料采购员岗位职责
2013/12/19 职场文书
家长写给老师的建议书
2014/03/13 职场文书
幼儿园大班开学教师寄语
2014/04/03 职场文书
怎样拟定创业计划书
2014/05/01 职场文书
关于祖国的演讲稿
2014/05/04 职场文书
怒海潜将观后感
2015/06/11 职场文书
2016年先进教师个人事迹材料
2016/02/26 职场文书