为什么会需要做 avif 转 jpg
AVIF 是主流图片格式里最新的一个,底子是 AV1 视频编码,压缩效率在这堆格式里确实是最高的。 正因为效率高,网站才愿意发它,你也才会莫名其妙攒下一堆 .avif:在一个现代网站上右键另存图片, 存下来的往往就是它。
麻烦随后就来了。浏览器的支持比其他所有环节早了好几年:Windows 在你去微软商店装上解码器之前 只会给你一个灰方块;老版本的 macOS 生成不出 Finder 预览;大多数照片编辑软件、几乎所有印刷 流程,以及一长串上传框和 CMS 后台,干脆就不收这个文件。而 JPG 是那个在哪儿都从没出过这种 问题的格式。
这次转换要付什么代价
两样,开始之前都值得知道。
文件会变大,通常 2 到 4 倍。AVIF 的体积优势是靠一套明显更现代的编码换来的,把同一张画面重新 编成 JPEG 就得花掉多得多的字节。没有哪个选项能绕开这一点,这就是兼容性的价钱。
画质会掉一点。原来的 AVIF 本身已经是有损的,再写成 JPEG 相当于在上面叠了第二代有损压缩。默认 92% 下,照片里很难看出来;但截图或者带硬边缘的图形上就明显得多,那类内容应该转成 PNG。
透明区域得指定一个颜色
AVIF 能存 alpha 通道,JPEG 不能,所以透明像素必须先被填上才能写进 JPEG。上面那个控件就是设这个 颜色的,默认白色。如果这张图要放到深色页面上,现在就选个深色,别等到发现边上有一圈白光晕。
JPG 和 JPEG 是同一种格式
提一下,因为同一个问题被拆成了两种搜法。三个字母的扩展名是"点后面只能跟三个字符"那个年代留下 来的,格式、画质、兼容性都没有区别。搜 avif 转 jpeg 和搜 avif 转 jpg 要的是同一个输出,本页面 对两种扩展名一视同仁。
不上传任何东西
你的浏览器里本来就带着一个 AVIF 解码器,这也是这件事不需要服务器的原因。文件在标签页里被解码、 画到 canvas 上、再重新编码,不会有任何副本流到别处去。