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

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

        从照片里面获取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

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

猜你喜欢

  • python中用logging实现日志滚动和过期日志删除功能

    2021-03-17 14:21:18
  • Go语言reflect.TypeOf()和reflect.Type通过反射获取类型信息

    2024-04-23 09:38:27
  • 抛砖引玉Web2.0设计指南

    2008-06-30 12:49:00
  • asp如何获知页面上的图象的实际尺寸?

    2009-11-24 20:50:00
  • python列表详情

    2023-12-29 01:59:06
  • 详解scrapy内置中间件的顺序

    2023-10-22 07:13:38
  • FF下,用 col 隐藏表格列的方法详解!

    2008-04-02 11:35:00
  • AI经典书单 人工智能入门该读哪些书?

    2023-06-24 07:11:00
  • mybatis统计每条SQL的执行时间的方法示例

    2024-01-28 12:54:43
  • Python3 实现爬取网站下所有URL方式

    2022-03-28 07:12:37
  • Python3实现发送QQ邮件功能(html)

    2023-06-26 16:50:41
  • 解决在pycharm中显示额外的 figure 窗口问题

    2021-11-29 01:00:26
  • Oracle入侵常用操作命令整理

    2009-03-04 11:11:00
  • vue2.0.js的多级联动选择器实现方法

    2024-04-28 09:23:37
  • 在pytorch中如何查看模型model参数parameters

    2021-12-04 22:43:29
  • 浅谈Python中的生成器和迭代器

    2023-04-08 02:23:46
  • asp如何检测HTTP表头信息?

    2010-06-28 18:20:00
  • Python使用future处理并发问题方案详解

    2022-12-10 18:16:53
  • 3 个超有用的 Python 编程小技巧

    2022-12-02 20:32:03
  • 验证码的最高境界

    2008-05-08 14:17:00
  • asp之家 网络编程 m.aspxhome.com