使用python 写一个程序读写图片的exif数据
时间: 2023-12-10 07:05:34 浏览: 27
要读写图片的 exif 数据,可以使用 Python 的 Pillow 库。下面是一个示例代码,可以读取图片的 exif 数据并将其写入到一个新的图片中:
```python
from PIL import Image
# 打开图片并读取 exif 数据
img = Image.open('example.jpg')
exif_data = img._getexif()
# 创建一个新的图片对象并将 exif 数据写入其中
new_img = Image.new('RGB', (100, 100), color='white')
new_img.info['exif'] = exif_data
new_img.save('new_example.jpg')
```
在这个示例中,我们首先使用 `Image.open()` 方法打开图片文件,然后使用 `_getexif()` 方法读取图片的 exif 数据。接着,我们创建了一个新的图片对象 `new_img`,并将 exif 数据写入其中。最后,我们使用 `save()` 方法保存新的图片。
注意,如果图片没有 exif 数据,`_getexif()` 方法将会返回 `None`。此外,如果你想修改 exif 数据,可以直接修改 `exif_data` 字典中的值,然后将其写回图片中即可。
相关问题
使用python 写一个读写图片的exif数据
可以使用Python的Pillow库来读写图片的exif数据。以下是一个示例代码:
```python
from PIL import Image
from PIL.ExifTags import TAGS
# 读取图片
image = Image.open('example.jpg')
# 获取exif数据
exifdata = image.getexif()
# 将exif数据转换成字典格式
exif = {}
for tag_id, value in exifdata.items():
tag = TAGS.get(tag_id, tag_id)
exif[tag] = value
# 打印exif数据
print(exif)
# 修改exif数据
exif['Artist'] = 'John Doe'
# 将修改后的exif数据写回图片
exif_bytes = bytes()
for tag, value in exif.items():
tag_id = TAGS.get(tag, tag)
exif_bytes += bytes(tag_id) + bytes([0]) + bytes([0]) + \
bytes([len(value)]) + bytes([0]) + bytes(value)
image.save('example.jpg', exif=exif_bytes)
```
在上面的代码中,首先使用`Image.open()`方法读取图片。然后,使用`image.getexif()`方法获取图片的exif数据,并将其转换成字典格式。接下来,可以对exif数据进行修改,最后使用`image.save()`方法将修改后的exif数据写回图片。注意,exif数据必须以字节形式传递给`image.save()`方法的`exif`参数。
Python编写一个能读写json文件的程序
以下是一个能读写json文件的Python程序示例:
```python
import json
# 读取json文件
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 输出读取的数据
print(data)
# 修改数据
data['name'] = 'Tom'
data['age'] = 25
# 写入json文件
with open('data.json', 'w', encoding='utf-8') as f:
json.dump(data, f)
# 再次读取json文件
with open('data.json', 'r', encoding='utf-8') as f:
data = json.load(f)
# 输出修改后的数据
print(data)
```
在此示例中,我们首先打开一个名为“data.json”的json文件进行读取,然后将读取到的数据存储在变量“data”中。接着,我们修改了其中的一些数据,并将其写回到同一个文件中。最后,我们再次读取文件,并输出修改后的数据。注意,我们使用了`json.load()`函数读取json文件,`json.dump()`函数将数据写回json文件。