Windows平台下将HEIC格式文件转换为JPG格式

前情提要:

果子手机里照片格式是HEIC的,以.heic为后缀,如果通过通信软件发出去,接受方一保存,格式就可以转换为常见的JPG格式或者JEPG格式,但是对于批量HEIC格式照片,一张张发,一张张存太费劲了,所以首先将果子手机里的HEIC照片都导出来,借助python库pyheif再小写一段脚本就可以完成转换,但是windows系统下不支持使用pyheif,我在PIPI下没找到方法,有网友说使用pyheif.whl来安装,这个方法不知道可行否,如果有试过的UU可以留言。我在StackOverflow找到了一个适用于Windows的替换包:pillow_heif
直接在命令行窗口用 pip 安装即可

pip install pillow_heif

Python脚本

import os
from pillow_heif import HeifImagePlugin
from PIL import Image
def convert_heic_to_jpg(heic_file, jpg_file):
try:
# 打开 HEIC 文件
with Image.open(heic_file) as image:
# 确保 RGB 模式
if image.mode != "RGB":
image = image.convert("RGB")
# 保存为 JPG
image.save(jpg_file, "JPEG")
print(f"Converted: {heic_file} -> {jpg_file}")
except Exception as e:
print(f"Failed to convert {heic_file}: {e}")
def convert_all_heic_in_directory(directory, jpg_directory):
# 检查目标目录是否存在,不存在则创建
if not os.path.exists(jpg_directory):
os.makedirs(jpg_directory)
# 遍历源目录
for filename in os.listdir(directory):
if filename.lower().endswith(".heic"): # 检查文件扩展名
heic_file = os.path.join(directory, filename)
jpg_file = os.path.join(jpg_directory, os.path.splitext(filename)[0] + ".jpg")
# 调用转换函数
convert_heic_to_jpg(heic_file, jpg_file)
if __name__ == "__main__":
# 设置源目录和目标目录
directory = r"path\to\heif_dir"
jpg_directory = r"path\to\jpg_dir"
# 转换所有 HEIC 文件
convert_all_heic_in_directory(directory, jpg_directory)

补充一下HEIC与HEIF的关系:

HEIF

High Efficiency Image Format,是一种图像格式标准,它采用了 HEVC(High Efficiency Video Coding,通常称为 H.265)作为其图像压缩技术。HEIF 旨在提供高效的图像压缩和高质量的图像存储,尤其适用于高分辨率的图像文件,比如照片和图像序列。

HEIF 支持:

  • 高质量的图像压缩,文件大小相较于 JPEG 更小。
  • 支持多种内容类型,包括静态图像、图像序列(如动态图像、封面图像)等。
  • 支持透明度、图像的颜色深度(如 10 位色)和高动态范围(HDR)图像。

HEIC

High Efficiency Image Coding
HEIC 是 HEIF 格式的具体应用,尤其是针对静态图像和序列图像的编码方式。HEIC 是由 ISO/IEC 23008-12 规范定义的,通常使用 HEVC 压缩算法来编码图像。虽然 HEIF 本身是一个容器格式,可以用于存储多种数据(包括图像、视频和音频),但 HEIC 是 HEIF 容器的一种具体应用,主要用于图像文件。

HEIC 的特点:

文件扩展名:.heic(有时也称 .heif,但 .heic 更常见)。
图像压缩:使用 HEVC 编码(即 H.265 编码),提供更好的压缩效果。
支持多图层:HEIC 可以包含多个图像(例如,一张图片的不同版本、封面图和动态图像等)。

总结

HEIF 是图像格式的标准,包含容器格式和多种图像内容支持,而 HEIC 是 HEIF 格式的一种特定应用,主要用来编码和存储图像文件,尤其是在移动设备中应用广泛(例如苹果设备中的照片格式)。

posted @   Technique-Li  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
点击右上角即可分享
微信分享提示