python 读取 jpeg 中的exif
时间: 2024-02-06 21:10:03 浏览: 22
可以使用 `Pillow` 库来读取 JPEG 图像中的 EXIF 信息。以下是一个简单的示例代码:
```python
from PIL import Image
image = Image.open("example.jpg")
exif_data = image._getexif()
if exif_data:
for tag_id in exif_data:
tag = TAGS.get(tag_id, tag_id)
data = exif_data.get(tag_id)
if isinstance(data, bytes):
data = data.decode()
print(f"{tag}: {data}")
else:
print("No EXIF data found in the image.")
```
这段代码打开名为 `example.jpg` 的图像文件,然后使用 `_getexif()` 方法获取 EXIF 数据。如果存在 EXIF 数据,就遍历所有标签并输出它们的名称和值。如果不存在 EXIF 数据,则输出一条消息。
需要注意的是,`Pillow` 库中的 EXIF 标签都是以整数形式表示的。为了将这些标签转换为人类可读的名称,可以使用 `PIL.ExifTags.TAGS` 字典。
相关问题
python 读取 jpeg 中的exif LV CCT
要读取 JPEG 中的 EXIF LV CCT,可以使用 Python 中的 Pillow 库。以下是一个示例代码,演示了如何读取 JPEG 中的 EXIF 数据:
```python
from PIL import Image
from PIL.ExifTags import TAGS
# 打开 JPEG 图片
img = Image.open("example.jpg")
# 获取图片的 EXIF 数据
exif_data = img.getexif()
# 遍历所有 EXIF 标签
for tag_id in exif_data:
# 获取标签名称
tag_name = TAGS.get(tag_id, tag_id)
# 如果标签名称是 "Exif.Photo.LightValue",则输出其值
if tag_name == "Exif.Photo.LightValue":
print("LV:", exif_data[tag_id])
elif tag_name == "Exif.Photo.ColorTemperature":
print("CCT:", exif_data[tag_id])
```
在上面的示例代码中,我们首先使用 `Image.open()` 函数打开 JPEG 图片,然后使用 `getexif()` 方法获取其 EXIF 数据。接下来,我们遍历所有 EXIF 标签,如果标签名称是 "Exif.Photo.LightValue",则输出其值,如果标签名称是 "Exif.Photo.ColorTemperature",则输出其值。
python怎么向文件中添加元数据?
在Python中,您可以使用第三方库来向文件中添加元数据。其中,较为常用的库是“exifread”和“piexif”。
1. 使用“exifread”库添加元数据
“exifread”是一个用于解析和提取图像EXIF元数据的Python库,它可以用于读取和写入JPEG和TIFF格式的图像。下面是一个示例代码,展示如何向JPEG图像中添加元数据:
```python
import exifread
# 打开JPEG图像文件
with open('example.jpg', 'rb') as f:
tags = exifread.process_file(f)
# 添加元数据
tags['Image Software'] = 'Python'
# 保存更改后的图像文件
with open('example.jpg', 'wb') as f:
exif_bytes = exifread.dump_tags(tags)
f.write(exif_bytes)
```
在上述代码中,我们首先使用“exifread”库读取了一个JPEG图像,并将其解析为一个包含所有元数据的字典。然后,我们向字典中添加了一个名为“Image Software”的元数据项。最后,我们将更改后的元数据重新写入了原始的JPEG文件中。
2. 使用“piexif”库添加元数据
“piexif”是一个用于处理图像EXIF元数据的Python库,它允许您读取、写入和删除JPEG和TIFF格式图像的元数据。下面是一个示例代码,展示如何向JPEG图像中添加元数据:
```python
import piexif
# 打开JPEG图像文件
exif_dict = piexif.load('example.jpg')
# 添加元数据
exif_dict['0th'][piexif.ImageIFD.Software] = 'Python'
# 保存更改后的图像文件
exif_bytes = piexif.dump(exif_dict)
piexif.insert(exif_bytes, 'example.jpg')
```
在上述代码中,我们首先使用“piexif”库读取了一个JPEG图像,并将其解析为一个包含所有元数据的字典。然后,我们向字典中添加了一个名为“Software”的元数据项。最后,我们将更改后的元数据重新写入了原始的JPEG文件中。
需要注意的是,向图像文件中添加元数据时,应该根据文件格式和元数据标准来选择正确的标签和数值类型。此外,在修改图像文件之前,最好先备份原始文件,以免造成不可逆的损失。