在 Python 中提取图像元数据的指南

本文详细介绍了如何在 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()

#set
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值