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中的类学习笔记
Sep 23 Python
Python单元测试框架unittest简明使用实例
Apr 13 Python
python传递参数方式小结
Apr 17 Python
Python二叉搜索树与双向链表转换实现方法
Apr 29 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
Python PO设计模式的具体使用
Aug 16 Python
Python sorted排序方法如何实现
Mar 31 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
python代码实现将列表中重复元素之间的内容全部滤除
May 22 Python
python如何更新包
Jun 11 Python
python实现数字炸弹游戏
Jul 17 Python
Python标准库pathlib操作目录和文件
Nov 20 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
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
分享一个PHP数据流应用的简单例子
2012/06/01 PHP
使用配置类定义Codeigniter全局变量
2014/06/12 PHP
经典PHP加密解密函数Authcode()修复版代码
2015/04/05 PHP
php如何把表单内容提交到数据库
2019/07/08 PHP
浅析PHP中json_encode与json_decode的区别
2020/07/15 PHP
php+js实现点赞功能的示例详解
2020/08/07 PHP
关于JavaScript定义类和对象的几种方式
2010/11/09 Javascript
js获取触发事件元素在整个网页中的绝对坐标(示例代码)
2013/12/13 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
使用coffeescript编写node.js项目的方法汇总
2015/08/05 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
分享Javascript实用方法二
2015/12/13 Javascript
AJAX实现瀑布流触发分页与分页触发瀑布流的方法
2016/05/23 Javascript
AngularJS ng-blur 指令详解及简单实例
2016/07/30 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
BootStrap轮播HTML代码(推荐)
2016/12/10 Javascript
js自定义瀑布流布局插件
2017/05/16 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
jquery实现企业定位式导航效果
2018/01/01 jQuery
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
JS document对象简单用法完整示例
2020/01/14 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
[01:11:15]VGJ.S vs Secret 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
解决Pycharm界面的子窗口不见了的问题
2019/01/17 Python
浅析python实现动态规划背包问题
2020/12/31 Python
Myprotein台湾官方网站:全球领先的运动营养品牌
2018/12/10 全球购物
双十佳事迹材料
2014/01/29 职场文书
优秀企业获奖感言
2014/02/01 职场文书
班长自荐书范文
2014/02/11 职场文书
2014年社区宣传工作总结
2014/12/02 职场文书
员工试用期转正自我评价
2015/03/10 职场文书
2015年体检中心工作总结
2015/05/27 职场文书
单位政审意见范文
2015/06/04 职场文书
Redis高并发防止秒杀超卖实战源码解决方案
2021/11/01 Redis
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android