Windows 批量转换 iPhone HEIC 照片
Windows 批量转换 iPhone HEIC 照片:一键转 JPG / WebP(附脚本下载)
今天想把前段时间去非洲的照片导出来,之前我都是发送到微信文件传输助手,然后一张张保存下来,虽然麻烦而且会被压缩,但是苦于没有办法,逛微博看到有数码博主推荐了LocalSend,从此一发不可收拾,如果我不看微博,我可能是世界上最后一个这样传照片的人。
今天尝试一次发送了200多张照片,等我查看文件的时候我傻眼了,我是刚知道,用 iPhone 或 iPad 拍照,照片默认是 .heic
格式。如果不是通过iTunes或者其他软件导出来,类似LocalSend直接发送文件的话,结果都是 .heic
,看官方介绍它体积小、画质好,但在 Windows 或部分软件中兼容性一般。
于是借助强大的ChatGPT寻求方法,并且整理分享记录一下。
✔ 支持子目录递归、保留目录结构;✔ 自动旋转;✔ 进度条可视化;✔ 生成日志;✔ 简体中文提示。
为什么要转格式?HEIC / JPG / WebP 对比
格式 | 优点 | 缺点/兼容性 | 适用场景 |
---|---|---|---|
HEIC | 体积小、画质好 | Windows/部分软件不友好,预览/编辑有门槛 | 苹果生态内使用 |
JPG | 兼容性最好、通用 | 体积相对大 | 打印/分享/全平台 |
WebP | 更省空间、画质可观 | 老旧软件不支持 | 网站、图床、博客 |
一、准备工作:安装 ImageMagick
脚本基于开源工具 ImageMagick,它能读取 HEIC 并输出多种格式。
- 前往下载页面,建议选择:
- 安装时建议勾选:
- 安装完成后,按 Win+R 输入 cmd,执行下面指令,有版本号就代表安装成功,可以运行脚本了。
推荐安装包:ImageMagick-7.x(Win64)
Q16-x64-dll.exe
(64 位系统 / 16-bit 精度 / 动态版)
✅ Add application directory to your system path
✅ Install legacy utilities (e.g. convert)
magick -version
二、脚本下载与源码
下面提供两套脚本源码。把代码复制到记事本,另存为 .bat
文件即可使用,记事本存储的时候选择UTF-8 无 BOM 或 ANSI 都行。
脚本 A:HEIC → JPG
heic2jpg.bat 默认质量:92; 输出目录:converted_jpg
@echo off
setlocal enableextensions
title HEIC to JPEG (fixed)
rem ===== Params =====
set "SRC=%~1"
if "%SRC%"=="" set "SRC=%CD%"
set "OUT=%~2"
if "%OUT%"=="" set "OUT=%SRC%\converted_jpeg"
set "QUALITY=%~3"
if "%QUALITY%"=="" set "QUALITY=92"
where magick >nul 2>&1 || (
echo [ERROR] magick.exe not found. Install ImageMagick first.
pause
goto :end
)
if not exist "%OUT%" mkdir "%OUT%" 2>nul
rem ===== Count (single pattern to avoid double count) =====
set /a TOTAL=0
for /r "%SRC%" %%F in (*.heic) do set /a TOTAL+=1
if %TOTAL% EQU 0 (
echo No HEIC files found in "%SRC%".
pause
goto :end
)
echo Source : %SRC%
echo Output : %OUT%
echo Format : JPEG
echo Quality: %QUALITY%
echo Files : %TOTAL%
echo -----------------------------------------
rem ===== Convert =====
set /a DONE=0
for /r "%SRC%" %%F in (*.heic) do call :DO_ONE "%%~fF"
echo -----------------------------------------
echo Done. Output: "%OUT%"
pause
goto :end
:DO_ONE
set /a DONE+=1
set "IN=%~1"
set "TARGET=%OUT%\%~n1.jpg"
echo (%DONE%/%TOTAL%) %~nx1
if exist "%TARGET%" (
echo -> skip (exists)
) else (
magick "%IN%" -auto-orient -colorspace sRGB -quality %QUALITY% "%TARGET%"
if errorlevel 1 (echo -> FAIL) else (echo -> OK)
)
goto :eof
:end
endlocal
脚本 B:HEIC → WebP
heic2webp.bat 默认质量:85; 输出目录:converted_webp
@echo off
setlocal enableextensions
title HEIC to WEBP (fixed)
rem ===== Params =====
set "SRC=%~1"
if "%SRC%"=="" set "SRC=%CD%"
set "OUT=%~2"
if "%OUT%"=="" set "OUT=%SRC%\converted_webp"
set "QUALITY=%~3"
if "%QUALITY%"=="" set "QUALITY=85"
where magick >nul 2>&1 || (
echo [ERROR] magick.exe not found. Install ImageMagick first.
pause
goto :end
)
if not exist "%OUT%" mkdir "%OUT%" 2>nul
rem ===== Count (single pattern to avoid double count) =====
set /a TOTAL=0
for /r "%SRC%" %%F in (*.heic) do set /a TOTAL+=1
if %TOTAL% EQU 0 (
echo No HEIC files found in "%SRC%".
pause
goto :end
)
echo Source : %SRC%
echo Output : %OUT%
echo Format : WEBP
echo Quality: %QUALITY%
echo Files : %TOTAL%
echo -----------------------------------------
rem ===== Convert =====
set /a DONE=0
for /r "%SRC%" %%F in (*.heic) do call :DO_ONE "%%~fF"
echo -----------------------------------------
echo Done. Output: "%OUT%"
pause
goto :end
:DO_ONE
set /a DONE+=1
set "IN=%~1"
set "TARGET=%OUT%\%~n1.webp"
echo (%DONE%/%TOTAL%) %~nx1
if exist "%TARGET%" (
echo -> skip (exists)
) else (
magick "%IN%" -auto-orient -colorspace sRGB -quality %QUALITY% -define webp:method=6 "%TARGET%"
if errorlevel 1 (echo -> FAIL) else (echo -> OK)
)
goto :eof
:end
endlocal
三、使用方法
最简单(双击运行)
- 把
.bat
脚本放到有 HEIC 的文件夹。 - 双击运行,等待进度条完成。
- 输出在
converted_jpg
或converted_webp
目录(保留原有子目录结构)。
- 第 1 个参数:源目录(为空则默认当前目录)
- 第 2 个参数:输出目录(为空则默认
converted_xxx
) - 第 3 个参数:质量(1~100;JPG 建议 85~95,WebP 建议 75~90)
四、常见问题
1)运行脚本提示找不到 magick
?
安装 ImageMagick 时请勾选 “✅ Add application directory to your system path”,或重启命令行窗口后再试。
2)HEIC 无法读取?
用命令检查:magick -list format | findstr /I heic
。若无 HEIC 条目,换用推荐安装包重新安装(确保包含 HEIC/HEIF 支持)。
3)进度条不显示?
脚本调用的是内置 PowerShell(Windows 自带)。若被策略限制,可在 PowerShell 以管理员身份运行:Set-ExecutionPolicy RemoteSigned
。
4)是否会覆盖已存在文件?
脚本默认 跳过已存在同名目标文件(日志中会标注“跳过”)。你也可以改脚本:删除“已存在则跳过”的判断即可覆盖。
5)能否限制最大尺寸、同时压缩?
可以,在 magick
命令后追加 -resize 3000x3000\>
(长边不超过 3000px)。
6)显示数量正在转换的数量不对,甚至超过一倍?
对,这个是因为用了两个通配符:*.heic
*.HEIC
。Windows 文件系统大小写不敏感,for /r 的匹配也是不区分大小写的——结果同一张图会被两个模式各匹配一次,统计数就翻倍(甚至会尝试转换两次,不过我们脚本里“已存在则跳过”会挡住)。
五、简单效果对比
类型 | 大小 | 说明 |
---|---|---|
HEIC 原图 | 3.23 MB | iPhone 直出 |
JPG(质量 92) | 5.79 MB | 通用、打印分享友好 |
WebP(质量 85) | 2.49 MB | 适合网站/图床,省流量 |
.heic
转换成.jpeg
基本文件大小基本要增加80%,.heic
转换成.WebP
基本文件大小要减少23%,我总共139张照片,之前.heic
格式文件夹大小是238 MB,转换成.jpeg
后总文件大小是367 MB,转换成.WebP
后总文件大小是138 MB六、下载
结语
以上就是我在 Windows 上处理 iPhone HEIC 的实用方案:安装一次 ImageMagick,双击脚本即可批量转换,既提升效率,也不会再被“一个个保存、格式不兼容”折磨。后续要在 输出 PNG/AVIF、保留/移除 EXIF、限制最大分辨率 等进阶功能,我会继续补充脚本版本。
每次进来,都会看到这个模板的改动,一次又一次的惊艳到…
乡愁呀,佳节团圆的仪式感还是要拉满。
昨天过来手机版一直没办法输入焦点,刚才我电脑版不知道…
哦不,我是用电脑的,macOS26 Safari
这个评论表单有问题啊,我打字不能按回车键,这段文字是…
一直用5,很少使用!
你的评论表单貌似有些问题?这条评论我大概花了好几分钟…
发
OPPO相册的heic可以转吗
影像功能果然不错,话说这主题没有适配移动端吗