Python HEIC到JPEG的元数据转换

Python HEIC到JPEG的元数据转换,python,jpeg,exif,data-conversion,heic,Python,Jpeg,Exif,Data Conversion,Heic,我正在尝试将heic文件转换为jpeg格式,同时导入所有元数据(如gps信息和其他内容),但与下面的代码相比,转换没有问题,但创建的jpeg文件上没有存储元数据。 任何人都可以描述我需要在转换方法中添加什么 heif_file = pyheif.read("/transito/126APPLE_IMG_6272.HEIC") image = Image.frombytes( heif_file.mode, heif_file.size, heif_fi

我正在尝试将heic文件转换为jpeg格式,同时导入所有元数据(如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")

谢谢,我找到了解决办法,希望能帮助别人:

# Open the file
heif_file = pyheif.read(file_path_heic)

# Creation of image 
image = Image.frombytes(
    heif_file.mode,
    heif_file.size,
    heif_file.data,
    "raw",
    heif_file.mode,
    heif_file.stride,
)
# Retrive the metadata
for metadata in heif_file.metadata or []:
    if metadata['type'] == 'Exif':
        exif_dict = piexif.load(metadata['data'])

# 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° time from PIL, 2° from viewer).
exif_dict['0th'][274] = 0
exif_bytes = piexif.dump(exif_dict)
image.save(file_path_jpeg, "JPEG", exif=exif_bytes)

这可能会有帮助,谢谢,我解决了这个问题: