上一帖本来是打算用一个python脚本完成的 ,但是pyheif依赖安装没搞定,总是出错,因此折衷用了两步:1。先用py脚本处理
2。再通过批处理调用imagemagick来实现,基本上也是一键完成, 只是分了两个步骤,详情请见:
https://blog.csdn.net/weixin_62598385/article/details/141429925
关于python依赖的安装, 参考我的前几帖:
https://blog.csdn.net/weixin_62598385/article/details/135945383
关于python依赖的安装, 参考我的前几帖, 点这里进入!
使用方法,先照我上面的帖子安装配置好python, 并安装对应的依赖,在windows 对应目录新建文本文件 将以下代码复制粘帖,另存为py文件, 双击即可运行
import os
import shutil
from PIL import Image
from pillow_heif import register_heif_opener
# 注册 HEIF 解码器
register_heif_opener()
# 定义landrop目录的路径,使用当前目录
landrop_dir = os.getcwd()
# 定义heic目录的路径
heic_dir = os.path.join(landrop_dir, "heic")
# 定义jpeg目录的路径
jpeg_dir = os.path.join(landrop_dir, "jpeg")
# 如果heic和jpeg目录不存在,创建这些目录
if not os.path.exists(heic_dir):
os.makedirs(heic_dir)
if not os.path.exists(jpeg_dir):
os.makedirs(jpeg_dir)
# 第一步:复制heic文件到heic目录
for item in os.listdir(landrop_dir):
item_path = os.path.join(landrop_dir, item)
# 只处理IMG_xxxx.pvt格式的文件夹
if os.path.isdir(item_path) and item.startswith("IMG_") and item.endswith(".pvt"):
print(f"正在处理目录: {item_path}")
# 遍历文件夹中的所有文件
for file in os.listdir(item_path):
if file.lower().endswith(".heic"):
heic_file_path = os.path.join(item_path, file)
print(f"找到.heic文件: {heic_file_path}")
# 复制heic文件到heic目录
shutil.copy2(heic_file_path, heic_dir)
print(f"已复制 {heic_file_path} 到 {heic_dir}")
# 第二步:将heic目录中的heic文件转换为jpeg文件
for file in os.listdir(heic_dir):
if file.lower().endswith(".heic"):
heic_file_path = os.path.join(heic_dir, file)
print(f"正在处理文件: {heic_file_path}")
try:
# 使用 pillow-heif 读取 HEIC 文件
with Image.open(heic_file_path) as image:
# 保存为 JPEG 格式
jpeg_file_path = os.path.join(jpeg_dir, os.path.splitext(file)[0] + ".jpg")
image.save(jpeg_file_path, "JPEG")
print(f"已将 {heic_file_path} 转换为 {jpeg_file_path}")
except Exception as e:
print(f"处理 {heic_file_path} 时出错: {e}")
print("所有HEIC文件已复制并转换为JPEG文件。")
一键将ios 的heic图片批量转为jpeg! 欧耶!