Tri*_*ics 9 python jpeg exif data-conversion heic
我正在尝试在 jpeg 中转换 heic 文件,同时导入所有元数据(如 GPS 信息和其他内容),不幸的是,转换下面的代码没问题,但创建的 jpeg 文件中没有存储任何元数据。任何人都可以描述我需要在转换方法中添加什么?
heif_file = pyheif.read("/transito/126APPLE_IMG_6272.HEIC")
image = Image.frombytes(
heif_file.mode,
heif_file.size,
heif_file.data,
"raw",
heif_file.mode,
heif_file.stride,
)
image.save("/transito/126APPLE_IMG_6272.JPEG", "JPEG")
Run Code Online (Sandbox Code Playgroud)
谢谢,我找到了解决方案,希望可以帮助其他人:
\n# Open the file\nheif_file = pyheif.read(file_path_heic)\n\n# Creation of image \nimage = Image.frombytes(\n heif_file.mode,\n heif_file.size,\n heif_file.data,\n "raw",\n heif_file.mode,\n heif_file.stride,\n)\n# Retrive the metadata\nfor metadata in heif_file.metadata or []:\n if metadata['type'] == 'Exif':\n exif_dict = piexif.load(metadata['data'])\n\n# PIL rotates the image according to exif info, so it's necessary to remove the orientation tag otherwise the image will be rotated again (1\xc2\xb0 time from PIL, 2\xc2\xb0 from viewer).\nexif_dict['0th'][274] = 0\nexif_bytes = piexif.dump(exif_dict)\nimage.save(file_path_jpeg, "JPEG", exif=exif_bytes)\nRun Code Online (Sandbox Code Playgroud)\n