如何利用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)
【如何利用python读取图片属性信息】完整代码:
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到此这篇关于如何利用python读取图片属性信息的文章就介绍到这了,更多相关python读取图片属性信息内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
GPSLatitude: 28.93939427777778
altitude: 58.009
推荐阅读
- python的多线程原来可以这样解
- Python中的列表条件求和方法
- 垃圾识别系统|垃圾识别系统 Python+TensorFlow项目
- 投稿|栓Q走红,方言音乐如何造就抖音新梗
- 产业互联网|始于云计算,DPU创业如何完善新的生态?| 快公司
- python|python pdfplumber库批量提取pdf表格数据转换为excel
- Mac下使用HomeBrew安装python3
- 如何在C#9|如何在C#9 中使用顶级程序 (top-level)
- Python函数的参数详解
- 如何在Vue中使用高德地图