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从sqlite读取并显示数据的方法
May 08 Python
Python模块包中__init__.py文件功能分析
Jun 14 Python
Flask框架的学习指南之用户登录管理
Nov 20 Python
python字符串中的单双引
Feb 16 Python
Python中selenium实现文件上传所有方法整理总结
Apr 01 Python
使用pandas读取csv文件的指定列方法
Apr 21 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 Python
python 搜索大文件的实例代码
Jul 08 Python
Python3分析处理声音数据的例子
Aug 27 Python
python实现密码强度校验
Mar 18 Python
python实现按键精灵找色点击功能教程,使用pywin32和Pillow库
Jun 04 Python
Python高并发解决方案实现过程详解
Jul 31 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
基于jquery的无限级联下拉框js插件
2011/10/29 Javascript
IE的fireEvent方法概述及应用
2013/02/22 Javascript
js实现select组件的选择输入过滤代码
2014/10/14 Javascript
JavaScript模拟可展开、拖动与关闭的聊天窗口实例
2015/05/12 Javascript
drag-and-drop实现图片浏览器预览
2015/08/06 Javascript
JavaScript中三种异步上传文件方式
2016/03/06 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
require.js配合插件text.js实现最简单的单页应用程序
2016/07/12 Javascript
js从外部获取图片的实现方法
2016/08/05 Javascript
javascript 动态脚本添加的简单方法
2016/10/11 Javascript
AngularJS动态添加数据并删除的实例
2018/02/27 Javascript
react-native使用leanclound消息推送的方法
2018/08/06 Javascript
一次让你了解全部JavaScript的作用域
2019/06/24 Javascript
nodejs使用node-xlsx生成excel的方法示例
2019/08/22 NodeJs
Nuxt.js实现一个SSR的前端博客的示例代码
2019/09/06 Javascript
浅谈使用nodejs搭建web服务器的过程
2020/07/20 NodeJs
[03:22]DSPL第一期精彩集锦:酷炫到底!
2014/11/07 DOTA
Python open()文件处理使用介绍
2014/11/30 Python
Python中pygal绘制雷达图代码分享
2017/12/07 Python
Python3 获取一大段文本之间两个关键字之间的内容方法
2018/10/11 Python
opencv调整图像亮度对比度的示例代码
2019/09/27 Python
python爬虫开发之使用Python爬虫库requests多线程抓取猫眼电影TOP100实例
2020/03/10 Python
对Matlab中共轭、转置和共轭装置的区别说明
2020/05/11 Python
css3 background属性调整增强介绍
2010/12/18 HTML / CSS
zooplus波兰:在线宠物店
2019/07/21 全球购物
几个SQL的面试题
2014/03/08 面试题
电子商务应届生自我鉴定
2014/01/13 职场文书
教师党性分析材料
2014/02/04 职场文书
黄河象教学反思
2014/02/10 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
代理人委托书
2014/08/01 职场文书
师范生免费教育协议书范本
2014/10/09 职场文书
机关作风建设工作总结
2014/10/23 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
岁月神偷观后感
2015/06/11 职场文书
使用 Docker Compose 构建复杂的多容器App
2022/04/30 Servers