由于黑群晖的不知道什么问题,之前上传的heic图片一直显示转换失败,尝试了好几次后决定用python转转看
首先参考了使用python 批量将 HEIC格式图片转换成JPG或者PNG格式的图片_python heic-CSDN博客发现确实可以转成功,但是之前的exif信息都没了
于是自己做了点修改,让转换后的jpg可以保留exif信息。
此代码只在Linux上有效,因为pyheif好像不支持Windows
#批量将HEIC格式的图片转换为JPEG或者PNG格式的图片
import os
import pyheif
from PIL import Image
import piexif
file_path = "./input/" #输入的heic格式图片的文件夹
target_path = "./output/" #输出的jpg格式的图片的文件夹
form = "jpeg" #设置输出图片格式,需要转换成png时,引号内换成png即可
files = os.listdir(file_path) #返回目录下的所有文件和目录名
file_num = len(files) #返回文件的数目
for file in files: #遍历文件列表
img = pyheif.read(file_path+file) #读取HEIC图片文件
filename=file.split('.')[0] #获取文件名
img_bytes = Image.frombytes(mode=img.mode, size=img.size, data=img.data) #读取图片参数
img_bytes.save(target_path+f"{filename}.{form}", format=form) #保存图片为JPEG
exif = (img.metadata[0])["data"] #获取exif信息
piexif.insert(exif,target_path+filename+".jpeg")
print(f"共转换了{file_num}张照片。")