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简单日志处理类分享
Feb 14 Python
介绍Python的Django框架中的QuerySets
Apr 20 Python
Python实现登录人人网并抓取新鲜事的方法
May 11 Python
一步步教你用Python实现2048小游戏
Jan 19 Python
Python使用PIL模块生成随机验证码
Nov 21 Python
Python使用logging模块实现打印log到指定文件的方法
Sep 05 Python
python3.4控制用户输入与输出的方法
Oct 17 Python
python的常用模块之collections模块详解
Dec 06 Python
详解Python安装tesserocr遇到的各种问题及解决办法
Mar 07 Python
Python中的引用知识点总结
May 20 Python
Python操作注册表详细步骤介绍
Feb 05 Python
详解Python+OpenCV进行基础的图像操作
Feb 15 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判断字符以及字符串的包含方法属性
2008/08/30 PHP
PHP实现对二维数组某个键排序的方法
2016/09/14 PHP
window.location和document.location的区别分析
2008/12/23 Javascript
JavaScript 滚轮事件使用说明
2010/03/07 Javascript
javascript 设计模式之单体模式 面向对象学习基础
2010/04/18 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
使用jquery选择器如何获取父级元素、同级元素、子元素
2014/05/14 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
深入理解JS中的substr和substring
2016/04/26 Javascript
javascript验证内容为数字以及长度为10的简单实例
2016/08/20 Javascript
通过jquery实现页面的动画效果(实例代码)
2016/09/18 Javascript
jQuery实现搜索页面关键字的功能
2017/02/16 Javascript
JavaScript错误处理操作实例详解
2019/01/04 Javascript
mpvue+vant app搭建微信小程序的方法步骤
2019/02/11 Javascript
JavaScript实现移动端带transition动画的轮播效果
2020/03/24 Javascript
[02:44]DOTA2英雄基础教程 魅惑魔女
2014/01/07 DOTA
python统计日志ip访问数的方法
2015/07/06 Python
Python中.py文件打包成exe可执行文件详解
2017/03/22 Python
浅谈python 里面的单下划线与双下划线的区别
2017/12/01 Python
Python列表生成式与生成器操作示例
2018/08/01 Python
python中的逆序遍历实例
2019/12/25 Python
python使用numpy实现直方图反向投影示例
2020/01/17 Python
基于Python获取docx/doc文件内容代码解析
2020/02/17 Python
Selenium 滚动页面至元素可见的方法
2020/03/18 Python
详解Flask前后端分离项目案例
2020/07/24 Python
python 基于selectors库实现文件上传与下载
2020/12/31 Python
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
美丽的现代设计家具:2Modern
2018/07/26 全球购物
傲盾软件面试题
2015/08/17 面试题
教师师德教育的自我评价
2013/10/31 职场文书
教师先进事迹材料
2014/12/16 职场文书
社区活动总结
2015/02/04 职场文书
干部培训简讯
2015/07/20 职场文书
导游词之五台山
2019/10/11 职场文书
Django debug为True时,css加载失败的解决方案
2021/04/24 Python