import os
from PIL import Image
import pillow_heif  # 轻量级HEIC处理库

def convert_heic_to_jpg(input_folder, output_folder):
    """将HEIC文件转换为JPG,保存到指定文件夹"""
    # 初始化pillow-heif
    pillow_heif.register_heif_opener()  # 注册HEIC格式支持

    # 处理路径
    input_folder = input_folder.strip()
    output_folder = output_folder.strip()

    # 检查输入文件夹
    if not os.path.exists(input_folder):
        print(f"错误:输入文件夹 '{input_folder}' 不存在")
        return

    # 创建输出文件夹
    os.makedirs(output_folder, exist_ok=True)

    converted_count = 0
    skipped_count = 0

    # 遍历文件
    for filename in os.listdir(input_folder):
        if filename.lower().endswith(('.heic', '.heif')):
            heic_path = os.path.join(input_folder, filename)
            jpg_filename = os.path.splitext(filename)[0] + '.jpg'
            jpg_path = os.path.join(output_folder, jpg_filename)

            # 跳过已存在的JPG
            if os.path.exists(jpg_path):
                print(f"已跳过:{filename}(JPG已存在)")
                skipped_count += 1
                continue

            try:
                # 用Pillow直接打开HEIC(因为注册了opener)
                with Image.open(heic_path) as img:
                    # 保存为JPG(质量95)
                    img.save(jpg_path, "JPEG", quality=95)
                print(f"已转换:{filename} -> 保存至 {output_folder}")
                converted_count += 1
            except Exception as e:
                print(f"转换失败:{filename} - 错误:{str(e)}")

    print("\n转换完成!")
    print(f"成功转换:{converted_count} 个文件")
    print(f"已跳过:{skipped_count} 个文件")

if __name__ == "__main__":
    # 输入文件夹(HEIC所在路径)
    input_folder = r"D:\test1\hec"  # 直接粘贴路径

    # 输出文件夹(JPG保存路径)
    output_folder = r"D:\test1\jpg_output"  # 自定义路径

    convert_heic_to_jpg(input_folder, output_folder)


评论(0条)

请登录后评论
ziyuan

ziyuan Rank: 16

0

0

0

( 此人很懒并没有留下什么~~ )

首页

栏目

搜索

会员