Python 图片处理库exifread详解

  

Python 图片处理库exifread详解

简介

Python 图片处理库exifread是一个用于读取JPEG, TIFF等图片的EXIF信息的库。它是基于 Python 的 Expat 解析器制作的 EXIF 读取程序。它可以帮助我们读取照片的元数据,例如日期、相机品牌、拍摄位置、ISO等信息。

安装

  1. 通过pip安装:
pip install exifread
  1. 手动安装

您可以从exifread的github页下载代码: https://github.com/ianare/exif-py

然后通过以下命令安装:

python setup.py install

示例

下面是两个简单的示例来演示如何读取图片的EXIF信息。

示例1: 读取图片的拍摄时间和ISO信息

import exifread 
# 打开图片文件
with open('test.jpg', 'rb') as f: 
    # 返回一个字典,其中包含图像的EXIF信息
    tags = exifread.process_file(f) 

    # 输出图像的exif信息
    for tag, value in tags.items():
        if str(tag) == "EXIF DateTimeOriginal" or str(tag) == "EXIF ISOSpeedRatings":
            print(tag, value)

在这个示例中,我们使用了process_file方法读取图片文件中的所有EXIF信息,并通过循环筛选出拍摄时间和ISO信息。如果您的图片包含其他信息,可以将循环中的if语句更改为相应的标签。

示例2: 读取图片的GPS信息

import exifread 
# 打开图片文件
with open('test.jpg', 'rb') as f: 
    # 返回一个字典,其中包含图像的EXIF信息
    tags = exifread.process_file(f) 

    # 读取GPS信息
    gps_latitude = tags.get("GPS GPSLatitude")
    gps_longitude = tags.get("GPS GPSLongitude")

    # 转换GPS信息
    if gps_latitude and gps_longitude:
        latitude_value = gps_latitude.values
        latitude_direction = gps_latitude.values[-1]
        longitude_value = gps_longitude.values
        longitude_direction = gps_longitude.values[-1]
        print("GPS Latitude: {} {}".format(latitude_value, latitude_direction))
        print("GPS Longitude: {} {}".format(longitude_value, longitude_direction))

在这个示例中,我们读取了图片文件中的GPS信息。由于exifread返回的gps信息是以分数的形式表示的,因此我们需要进行转换,使其成为我们熟悉的度数。最后,我们将转换后的gps信息打印到控制台。

相关文章