HEIC 一开始为什么是个麻烦
Apple 在 2017 年把 iPhone 摄像头切到了 HEIC:画质一样,文件大小却约为 JPEG 的一半,因为它用视频编解码器的压缩(HEVC)配一个更聪明的容器格式(HEIF)。它确实是个更好的格式,也正是你的手机能装下两倍照片的原因。
问题出在其他人身上。大量网站、上传表单、CMS 和老旧的 Windows 机器仍然不认 HEIC —— 你得到一句“不支持的文件类型”,无路可走。与此同时,那些能解决它的在线转换器,却要你把整个相册上传上去,而对大多数人来说,那意味着家庭照片、在厨房餐桌上拍的文件、带定位标签的度假照,都进了陌生人的存储桶,背靠着一段你没读过的隐私政策。
你的照片在这里经历了什么
- 文件在本地读取。浏览器本身只在某些情况下能解码 HEIC —— Safari 可以,Chrome 和 Firefox 不行 —— 所以这个页面先试浏览器自己的解码器,只在万不得已时才退回到内置的
libheif解码器。如果你用的是 Safari,你根本不会下载那个解码器,页面会告诉你它走了哪条路径。 - 这一帧以全分辨率画到 canvas 上,并应用手机里的旋转信息。
- 重新编码成你选的格式,再作为下载交还给你。想批量多少都行。
诚实的限制,免得有什么吓到你
- 每个文件一帧。一个 HEIF 容器可以装好几张图 —— 连拍、Live Photo 的静帧、深度图。这个转换器只取主帧,并在文件里含更多帧时告诉你。如果你需要连拍的那些帧,请用桌面工具。
- JPG 通常比 .heic 更大 —— 常常是 1.5–2 倍。那是格式的问题,不是转换器的:HEIC 借用了视频编解码器的效率,所以同一张图大约只需要一半的字节。输出没有被劣化;它只是以一个效率更低的格式存储。如果大小要紧,把质量调低或设一个最大边长 —— 或者转成 WebP,它效率上更接近 HEIC。
- 10 位 HDR 变成 8 位 sRGB。近年的 iPhone 拍 10 位 HDR;canvas 是 8 位。正是这次转换让结果到处都能看,也正是它让颜色可能比在你手机屏幕上显得非常轻微地平淡一点。
- 元数据会被丢掉,包括 GPS。输出不携带位置。对你正要发布的照片来说这是对的默认 —— 同时也意味着拍摄日期和相机设置也没了,所以如果你想要它们,保留原始的 .heic。
- 在 Chrome 上第一次转换要花掉 1.4 MB 的下载(那个解码器,之后走缓存)。Safari 用户跳过它。这就是不上传你照片的全部代价。
JPG 还是更好的选择?
要发出去或发布的照片,JPG 质量 85–95% 是稳妥的选择 —— 通用、体积小。如果你想要透明或更小的文件,选 WebP,每个当前浏览器都读得了。PNG 只用在截图或带文字的图片上:它是无损的,所以同一张照片会比 JPG 大好几倍。
相关:压缩图片到目标 KB · 图片转 PDF · 合并 PDF。