为什么 HEIC 是那个打不开的格式
HEIC 不是单一的东西:HEIF(ISO/IEC 23008-12,也就是“高效图像文件格式”)是容器,HEIC 是其中装载视频编码帧——具体说是 HEVC——的那一种口味。iPhone 从 iOS 11 起就用这种方式保存照片,因为同一张图片大约只占 JPEG 一半的字节,在手机小硬盘上,这就是两千张照片和四千张照片的差别。
打不开的原因与文件无关,完全在解码器。HEVC 受专利保护、按设备授权,通常由操作系统而不是浏览器实现,所以 Safari 17 及以后——能把任务交给系统——可以顺利打开 HEIC,而 Chrome、Edge 和 Firefox 在任何操作系统上都不解码它。这不是你文件的 bug,但它是页面能从外面解决的问题,见下一段。
所以这个页面按文件逐个判断:它查看开头几个字节,弄清文件到底是什么(把 HEIC 改名成 .jpg 很常见,名字不是证据),先让浏览器解码;浏览器说这个格式读不了时,它再加载自己的解码器——一套自带的 HEIC 解码器,原始 1.4 MB、压缩后约 440 KB,从本站发出。这次下载每次访问只发生一次,只有真的拿来 HEIC 的人才付这笔字节,而且永远不在首屏:转 JPEG 的人一分都不多付。
另一半混乱来自 AVIF。它也是 HEIF 容器,但里面装的图片用 AV1 编码,而浏览器确实实现了 AV1,所以 AVIF 一点忙都不用帮。HEIC 需要上面说的那个解码器,有了它之后两者转换的方式完全一样——区别只在于是谁做的解码。