python如何读取图片信息_python读取数据库数据

Python (5) 2024-07-22 13:12

Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说
python如何读取图片信息_python读取数据库数据,希望能够帮助你!!!。

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

python如何读取图片信息_python读取数据库数据_https://bianchenghao6.com/blog_Python_第1张

        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如何读取图片信息_python读取数据库数据_https://bianchenghao6.com/blog_Python_第2张

GPS坐标转换:

        通过exifread获取的经纬度信息格式通常是下面这样的:纬度 [28, 56, /5000] 经度 [112, 38, /10000],转换公式如下:

度 = 度 + 分/60 + 秒/3600 [28, 56, /5000] = 28 + 56 / 60 + /5000 / 3600 = 28.778

        因此坐标转换代码如下:

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. GPSLatitude: 28.778 altitude: 58.009

今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

发表回复