提问人:Ricardo Goncalves 提问时间:11/13/2023 更新时间:11/13/2023 访问量:25
如何使用React-Native将数据存储在EXIF的自定义标签中并使用Python读取它?
How can I store data in a Custom Tag in EXIF with React-Native and read it with Python?
问:
目标:我需要用相机拍摄照片并在其上存储数据(字符串数组就足够了)。然后,将照片传输到桌面后,我需要检索此数据。
方法:我正在制作一个 React Native 应用程序,我正在使用 Expo Framework。我发现适合在照片上存储数据的方式是存储在照片EXIF上的自定义标签上。我正在使用 Expo-Camera 和 Expo-Media-Library
我正在尝试使用以下代码存储“yolo”和“yoloBuf”标签:
//Capture Photo
let takePic = async () => {
let options = {
quality: 1,
base64: true,
exif: true,
additionalExif: {
yolo: 'bigbig',
yoloBuf: ['yellow', 'watermelon'],
}
};
let newPhoto = await cameraRef.current.takePictureAsync(options)
setPhoto(newPhoto);
};
...
let savePhoto = async () => {
console.log(photo.exif);
MediaLibrary.saveToLibraryAsync(photo.uri).then(() => {
setPhoto(undefined);
});
};
控制台.log(photo.exif)正在打印自定义标签。
但是,在python端,在提取EXIF数据时,我没有看到自定义标签,也没有看到大多数标签。我还在 Windows 上使用了一些软件来检查 EXIF 标签,但我也没有看到它。这让我认为我的问题可能出在React-Native方面。
Awnyway,这是我在 python 中使用的相关代码:
from PIL import Image, ExifTags
from PIL.ExifTags import TAGS, GPSTAGS
def extract_exif(image_path):
try:
with Image.open(image_path) as img:
exif_data = img._getexif()
if exif_data is not None:
print("EXIF Data:")
for tag, value in exif_data.items():
tag_name = TAGS.get(tag, tag)
print(f"{tag_name}: {value}")
except Exception as e:
print(f"Error extracting EXIF data: {e}")
所以,问题:
- EXIF是否是照片上用于存储照片上的字符串数组的适当字段?
- 我在React-Native方面遗漏了什么吗?我在MediaLibrary.saveToLibraryAsync(photo.uri)上保存照片本身有问题吗?
感谢您的进一步帮助, 里卡多
答: 暂无答案
评论