网络编程
位置:首页>> 网络编程>> Python编程>> 如何利用python读取图片属性信息

如何利用python读取图片属性信息

作者:alex1801  发布时间:2023-12-24 00:57:51 

标签:python,读取,图片,属性,信息

        从照片里面获取GPS信息。可交换图像文件常被简称为EXIF(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,EXIF信息不支持png,webp等图片格式。

如何利用python读取图片属性信息

        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内容如下:

如何利用python读取图片属性信息

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
手机版 网络编程 asp之家 www.aspxhome.com