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中让MySQL查询结果返回字典类型的方法
Aug 22 Python
编程语言Python的发展史
Sep 26 Python
Python调用C语言开发的共享库方法实例
Mar 18 Python
python将字符串转换成数组的方法
Apr 29 Python
在Django中管理Users和Permissions以及Groups的方法
Jul 23 Python
详解Python中表达式i += x与i = i + x是否等价
Feb 08 Python
django中的setting最佳配置小结
Nov 21 Python
Python列表推导式、字典推导式与集合推导式用法实例分析
Feb 07 Python
pandas将DataFrame的列变成行索引的方法
Apr 10 Python
Python wxpython模块响应鼠标拖动事件操作示例
Aug 23 Python
Python sklearn库实现PCA教程(以鸢尾花分类为例)
Feb 24 Python
python闭包、深浅拷贝、垃圾回收、with语句知识点汇总
Mar 11 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的异常处理类Exception的使用及说明
2012/06/13 PHP
PHP+memcache实现消息队列案例分享
2014/05/21 PHP
ThinkPHP验证码和分页实例教程
2014/08/22 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
PHP实现判断数组是一维、二维或几维的方法
2017/02/06 PHP
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
ASP.NET jQuery 实例14 在ASP.NET form中校验时间范围
2012/02/03 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
常见表单重复提交问题整理及解决方法
2013/11/13 Javascript
jQuery制作的别致导航有阴影背景高亮模式窗口
2014/04/15 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
轻松掌握JavaScript中的Math object数学对象
2016/05/26 Javascript
Highcharts入门之简介
2016/08/02 Javascript
详解node HTTP请求客户端 - Request
2017/05/05 Javascript
详解如何实现一个简单的 vuex
2018/02/10 Javascript
Vue项目中跨域问题解决方案
2018/06/05 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
Vue+webpack实现懒加载过程解析
2020/02/17 Javascript
Vue自动构建发布脚本的方法示例
2020/07/24 Javascript
JS实现拖拽元素时与另一元素碰撞检测
2020/08/27 Javascript
谈谈JavaScript中的函数
2020/09/08 Javascript
python实现逆波兰计算表达式实例详解
2015/05/06 Python
基于hashlib模块--加密(详解)
2017/06/21 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
2018/03/29 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
Python面向对象之反射/自省机制实例分析
2018/08/24 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
Python函数的默认参数设计示例详解
2019/12/01 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
传媒专业推荐信范文
2013/11/23 职场文书
2015年元旦联欢晚会活动总结
2014/11/28 职场文书
物流仓管员岗位职责
2015/04/01 职场文书
幼儿园大班教学反思
2016/03/02 职场文书
解决Nginx 配置 proxy_pass 后 返回404问题
2021/03/31 Servers
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
SQL IDENTITY_INSERT作用案例详解
2021/08/23 MySQL