为什么用 heicly
- 照片不离开你的设备
转换在浏览器中完成,照片不会上传到任何服务器。
- 不用等上传
照片直接在你的设备上转换,没有上传环节;速度取决于设备性能和照片大小。
- 首次使用后可离线
联网完成一次转换后,页面和转换引擎会缓存在浏览器中,断网也能继续转换(前提是浏览器没有清除缓存)。
如何离线把 HEIC 转成 JPG
- 联网打开本页。第一次访问时,页面像其他网站一样从网络加载,这一步还不涉及任何照片。
- 转换一张照片。任选一个 HEIC 文件。这一步会下载转换引擎,并让浏览器把引擎和本页一起保存下来,供之后使用。
- 断网后继续转换。断开网络,可以刷新本页,再转换更多照片。每张 JPG 都像普通下载一样保存到你的设备上。
不上传,HEIC 转 JPG 是怎么完成的
你选择文件后,页面把它从磁盘读进浏览器内存。页面的后台线程(Web Worker)用开源库 libheif 的 WebAssembly 版本解码 HEIC 图片,校正方向,再编码成 JPG。生成的 JPG 以下载链接的形式交回页面。这些步骤都不需要服务器,所以断开网络后转换照样能完成。
| 步骤 | 在哪里完成 |
|---|---|
| 读取 HEIC 文件 | 在你的浏览器中,从磁盘或相册读取 |
| 解码图片 | 在浏览器的 Web Worker 中,用 WebAssembly 完成 |
| 生成 JPG | 在同一个 Web Worker 中 |
| 批量打包 ZIP | 在浏览器内存中 |
| 保存结果 | 浏览器的普通下载,保存到你设备上的文件夹 |
自己验证:断网转换
- 联网时转换一张照片,等 JPG 生成。
- 关闭 Wi-Fi 或拔掉网线;手机上可以打开飞行模式。
- 刷新本页,页面会从浏览器缓存中打开。
- 换一张照片转换。即使没有网络,也能转换完成。
如果断网后页面打不开,说明缓存还没准备好,或者被浏览器清除了,例如关闭了无痕窗口、存储空间不足。重新联网转换一张照片后再试。
自己验证:查看 Network 面板
浏览器的开发者工具会列出页面发出的每一个请求。在 Chrome 中按 Control+Shift+J(Windows)或 Command+Option+J(Mac),再点 Network 标签;其他浏览器也有类似面板。面板只在打开期间记录,所以请先打开再选择文件(见 Chrome DevTools 文档)。
| 请求 | 是什么 |
|---|---|
| 名为 heic-to-worker-….js 的文件 | 转换引擎,约 3 MB。第一次转换时下载,之后浏览器从缓存读取。 |
| 以 blob: 开头的条目 | 浏览器内存中的数据,例如转换器的后台线程和你下载的 JPG。blob: 地址指向浏览器内部,不是发往服务器的请求。 |
| 统计请求(Google Analytics、Microsoft Clarity、Cloudflare) | 线上网站的使用统计,不包含你的照片、文件名或图像数据。 |
| 大小和照片差不多的请求 | 不会出现。如果照片被上传,会出现一个大小接近文件大小的请求。 |
统计服务收集哪些数据,见隐私说明。
离线使用能做什么、不能做什么
- 联网成功转换过一次后才能离线使用。第一次访问时没有网络,页面无法加载。
- 各个转换器页面分别缓存。从未联网打开过的转换器页面,断网时可能打不开。
- 存储空间不足或清除浏览数据时,浏览器可能删除已保存的网站数据。
- 刷新或关闭页面会清除当前任务和结果,请先下载需要的 JPG。
- 离线和联网的输出相同:质量设置相同,超过 16,777,216 像素的大图同样会按比例缩小。
离线转换常见问题
离线转换 HEIC 需要安装软件吗?
不需要。浏览器会把本页和转换引擎保存在缓存里,无需安装任何东西。想删除时,在浏览器设置里清除本网站的数据即可。
为什么第一次转换需要联网?
转换引擎只在第一次需要时才下载,这样页面本身能更快打开。用过一次后,浏览器会保留一份副本,之后的转换直接从缓存读取。
离线转换比联网转换更私密吗?
无论联网与否,照片都留在浏览器里,不会上传。断开网络只是让你更容易亲眼确认这一点。
手机上能离线转换吗?
取决于浏览器。步骤相同:先联网转换一张,再断网使用。存储空间不足时,手机浏览器可能更容易清除已保存的数据,正式依赖前请先试一次。
离线转换出来的 JPG 会不一样吗?
不会。联网和离线运行的是同一个引擎和同样的设置。单张照片默认质量 90(满分 100),可以调整;批量转换的照片使用质量 90。