开发者

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

开发者 https://www.devze.com 2022-12-12 12:55 出处:网络 作者: alex1801
        从照片里面获取GPS信息。可交换图像文件常被简称为EXIF(Exchangeable image file format),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,EXIF信息不支持png

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

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

  &nbhttp://www.cppcns.comsp;     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获取www.cppcns.com的经纬度信息格式通常是下面这样的:纬度 [28, 56, 109097/5000] 经度 [112, 38, 436353/10000],转换公式如下:

度 = 度 + 分/60 +qScfHQ 秒/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

 

 到此这篇关于如何利用python读取图片属性信息的文章就介绍到这了,更多相关python读取图片属性信息内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号