heic格式批量转换jpg

查看 84|回复 9
作者:daokunn   
heic转换的工具有很多,但如果图片涉及隐私之类担心泄露,那么自行去编写脚本是最好的选择,大家有需要自取,也可在我的代码基础上修改!
一、准备工作
在开始转换前,需要完成以下两项准备工作,确保代码能正常运行。
[ol]
  • 安装 Python 环境
    下载 Python:访问Python 官方网站,根据自己的操作系统(Windows/macOS)选择对应的 Python 3.x 版本(推荐 3.8 及以上)进行下载。
  • 安装所需 Python 库
    [/ol]
    本教程需要用到两个关键库:Pillow(处理图片)和pillow-heif(支持 HEIC 格式解析),通过以下命令快速安装:

  • 打开命令提示符 / 终端,输入以下命令并回车:
    pip install pillow pillow-heif
    若安装速度较慢,可以使用国内镜像源加速,命令如下:
    pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pillow pillow-heif

    二、源代码
    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)
    三、操作步骤
    了解代码逻辑后,按照以下步骤即可快速完成 HEIC 图片批量转换。
    [ol]
  • 准备 HEIC 图片文件夹
    [/ol]
  • 将所有需要转换的 HEIC/HEIF 图片整理到同一个文件夹中(例如D:\HEIC图片),建议文件夹路径中不要包含中文或特殊符号(如空格、括号),避免出现路径识别错误。
  • 修改代码中的路径
    [/ol]

  • 打开一个文本编辑器(如记事本、VS Code、PyCharm 等),将上述完整代码复制粘贴进去。

  • 找到代码中if name == "main":下方的两个路径:

  • input_folder:将其修改为你存放 HEIC 图片的文件夹路径,例如input_folder = r"D:\HEIC图片"(路径前加r是为了避免路径中的\被识别为转义字符)。

  • output_folder:设置转换后 JPG 图片的保存路径,例如output_folder = r"D:\JPG图片输出"(若该文件夹不存在,代码会自动创建)。
  • 运行代码
    [/ol]
    用 PyCharm 运行:

  • 打开 PyCharm,新建一个 Python 文件,将代码粘贴进去并修改路径。

  • 点击文件右上角的 “运行” 按钮(绿色三角形),或右键选择 “Run ' 文件名 '”,即可执行代码。
  • 查看转换结果
    [/ol]

  • 代码运行过程中,会实时打印每个文件的转换状态(如 “已转换”“已跳过”“转换失败”)。

  • 转换完成后,打开output_folder对应的文件夹,即可看到转换后的 JPG 图片,图片名称与原 HEIC 文件一致。

    路径, 文件夹

  • Oldpit   

    热乎滴  不错不错  需要需要
    r01253   

    谢谢分享~~~
    lishengde322   

    不会用
    不过还是感谢
    52kail   

    这个可以有,感谢分享!
    purehai   

    不错不错,非常好~
    wcode   

    需要需要 感谢~
    yigesuren   

    啊,我不会玩,不会用
    rgyjc   

    目前没有使用需求
    不过 还是感谢分享
    37
    lxyi   

    不错不错
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部