如何利用python读取图片属性信息
作者:alex1801 发布时间:2023-12-24 00:57:51
标签:python,读取,图片,属性,信息
从照片里面获取GPS信息。可交换图像文件常被简称为EXIF
(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,EXIF信息不支持png,webp等图片格式。
Python中使用ExifRead包读取图片的属性信息,安装方式为:
pip install exifread
使用exifread.process_file获取图像的信息:
img_path = r"bei_012744.jpg"
f = open(img_path, 'rb')
contents = exifread.process_file(f)
f.close()
单步调试,contents内容如下:
GPS坐标转换:
通过exifread获取的经纬度信息格式通常是下面这样的:纬度 [28, 56, 109097/5000] 经度 [112, 38, 436353/10000],转换公式如下:
度 = 度 + 分/60 + 秒/3600
[28, 56, 109097/5000] = 28 + 56 / 60 + 109097/5000 / 3600 = 28.93939427777778
因此坐标转换代码如下:
def convert_gps(coord_arr):
arr = str(coord_arr).replace('[', '').replace(']', '').split(', ')
d = float(arr[0])
m = float(arr[1])
s = float(arr[2].split('/')[0]) / float(arr[2].split('/')[1])
return float(d) + (float(m) / 60) + (float(s) / 3600)
完整代码:
import exifread
img_path = r"bei_012744.jpg"
f = open(img_path, 'rb')
contents = exifread.process_file(f)
f.close()
lon = contents['GPS GPSLongitude'].printable # 经度
lon = convert_gps(lon)
lat = contents['GPS GPSLatitude'].printable # 纬度
lat = convert_gps(lat)
altitude = contents['GPS GPSAltitude'].printable # 相对高度
altitude = float(altitude.split('/')[0]) / float(altitude.split('/')[1])
print("GPSLongitude:", lon, "\nGPSLatitude:", lat, "\naltitude:", altitude)
结果:
GPSLongitude: 112.64545425
GPSLatitude: 28.93939427777778
altitude: 58.009
来源:https://blog.csdn.net/weixin_34910922/article/details/123340837
0
投稿
猜你喜欢
- 很多时候我们写的程序,会花上一分钟甚至几分钟时间。为了使软件使用者能够耐心的等待程序的执行,我们经常会希望有一个进度条来表示程序执行的状态。
- 体系结构 Microsoft按照客户/服务器体系结构的分布进行操作。这种方法产生不必要的代价和复杂性。在Internet中,Oracle已经
- Response是负责将信息传递给用户的对象,它可动态地响应客户端的请求,并将动态生成的响应结果返回给客户端浏览器。 一,Resp
- 最近遇到SQL Server 2005 输入框不能输入中文,在网上查了N久,试验了十几次奏这个法子有用:“把你表中的自动编号列放到最后面”。
- 分享一下 IntelliJ IDEA 2021.1 的激活破解教程,相当于永久激活了,亲测有效,下面是详细文档哦~申明:本教程 Intell
- /* 功能: 通用分页存储过程 参数: @PK varchar(50), 主键,用来排序的单一字段,空的话,
- 不论你是有着多年经验的 Python 老司机还是刚入门 Python 不久,你一定遇到过UnicodeEncodeError、Unicode
- 在Twinsen Liang的博客上看到一篇名为语义化单单的限定在html么?的文章,文中主要是提及了CSS的命名规则,仔细阅读后,我认为这
- 本文实例为大家分享了tensorflow神经网络实现mnist分类的具体代码,供大家参考,具体内容如下只有两层的神经网络,直接上代码#引入包
- 昨天看到设计师提供的一张有关多个设计师角色间的漫画图(如下图),着实感到有点讽刺。现在的设计还只是停留在“盲人摸象”的阶段,为什么会这样?在
- <% '#######以下是一个类文件,下面的注解是调用类的方法####################
- 下面的asp函数实现了对站点的所有缓存Application的清理,释放!Sub RemoveAllCache() D
- 一个ASPJPEG组件综合操作的asp类CLASS相关文章:ASP怎么谈到应用到类的?ASP中类的详细介绍(class Property G
- 1.关系模型:用二维表格结构表示实体集,外键表示实体间联系的数据模型称为关系模型。关系模型是由若干个关系模式组成的集合。2.关系模式:关系模
- 今天有个服务器速度变得非常慢,用工具一看,IIS堵塞进程达到100多个,肯定有问题,下面进入排查(聚友习惯把过程写出来,如果不需要过程,请直
- Howdy, 大家好,又是我~ 上一次我们简单的谈了一下font set和一些要注意的基本问题。今天我们继续字体这一话题,深入讲讲上次提到
- PDOStatement::fetchObjectPDOStatement::fetchObject — 获取下一行并作为一个对象返回。(P
- 为什么页面出现乱码?为什么数据库里出现乱码?为什么这些乱码的出现几率飘忽不定了?诸如此类的乱码问题困扰了很多WEB开发人员。假如不将这背后的
- 对MySQL的用户而言,备受诟病的一个问题就是导入SQL备份文件时不能并发,使得导入的效率很低。今天,我们就来改变下思路,尝试一下并发导入的
- firefox不支持text-overflow一直让人很折腾。。不过还好有大虾为我们提供解决方案。。text-overflow: ellip