本文详细介绍了如何在 Python 中分离图片元数据。 当我们使用电脑相机或手机拍照时,相机会使用可交换图像文件格式 (EXIF) 指南来存储图片。 EXIF 原则使用元标签来确定有关图片的数据。
假设您需要在 Python 中获取 EXIF 标准图片的元数据,那么此时您希望利用 Python 库来处理图片。 为了在 Python 中处理图片,我们大体上使用了最著名的 Python 图片管理库 Pillow。
安装依赖
To know about the blog in English: Extracting metadata from images in Python
1)Python枕头库
Pillow是真正的Python图片处理库,众多的Python图片处理和AI库都是基于它的。 要为您的 Python 环境引入 Pillow,请在您的订单简介 (Windows) 或终端(Linux 和 macOS)上运行随附的 pip 介绍订单:
pip install Pillow
2) Python 漂亮的库
Prettytable 是一个开源 Python 库,用于以表格格式打印数据。 我们将在本教程中使用这个库以表格格式打印所有元数据信息。 要为您的 Python 环境安装漂亮的库,请使用以下 pip install 命令:
pip install prettytable
在Python中提取图像元数据的方法?
首先启动您最好的 Python IDE 或文本编辑器,然后从 Pillow 和漂亮的表格库中导入所需的模块。
#load modules
from PIL import Image
from PIL.ExifTags import TAGS
from prettytable import PrettyTable
接下来,设置一个 Python 标识符 image_filename ,它将保存图像的文件名,并初始化漂亮表库的 PrettyTable() 模块对象并设置其字段。
image_filename = "image.jpg"
#initialiting prettytable object
table = PrettyTable()
#setting table feilds name
table.field_names = ["MetaTags", "Values"]
使用 Image 模块的 Python 脚本。
#load image
my_image = Image.open(image_filename)
getexif() 策略只返回标签 ID 及其质量,而不是标签名称。 这就是我们同样导入 PIL.ExifTags 标签的原因,这些标签可以根据其 ID 恢复 EXIF 标签名称。 目前,我们将遍历 img_exif_data 中存在的 ID,并使用 TAGS.get() 策略和使用 img_exif_data.get() 技术的质量获取它们的标签名称。
for id in img_exif_data:
tag_name = TAGS.get(id, id)
data = img_exif_data.get(id)
#if data in bytes
if isinstance(data, bytes):
data = data.decode()
#add tag name and data into table
table.add_row([tag_name, data])
#display data
print(table)
Program
#load modules
from PIL import Image
from PIL.ExifTags import TAGS
from prettytable import PrettyTable
image_filename = "image.jpg"
#initialiting prettytable object
table = PrettyTable()
#sett