什么时候需要 webp 转 png
现在大部分网站发出来的图都是 WebP,因为同画质下它比 JPEG 小 25% 到 35%,而且和 JPEG
不同,它能带 alpha 通道。麻烦出现在你把这张图存下来、想拿到别处用的时候:不少软件到
今天都打不开 .webp,比如老版本的 Photoshop、绝大多数印刷流程、很多公司内部的 CMS
上传框,以及 2020 年以前写的桌面软件。PNG 是它们全都认的那个格式。
这个页面做的就是这一件事:把 WebP 解出来,交给 canvas,再写成 PNG。
哪些东西留得住,哪些会变
透明留得住。WebP 和 PNG 都有真正的 alpha 通道,所以抠好背景的 logo 转完还是抠好的, 不会被压到白底上去。
像素也留得住,因为 PNG 是无损的:WebP 解码出来是什么样,PNG 里就是什么样。但它没法把 已经发生的损失倒回去。如果原文件是有损 WebP,那些压缩痕迹早已烙在像素里,PNG 只会忠实 地把它们全部保存下来。
体积会变大,通常还大得挺明显。一个 200 KB 的有损 WebP 转出来常常是 1 到 2 MB 的 PNG, 因为 PNG 的字节花在"精确"上,而不是花在"丢掉你大概看不出来的细节"上。当你要的是兼容性 或者一个可以反复编辑的无损母版时,这笔交易是对的;当这张图转完还要放回网页上时,它就是 错的。
有损和无损的 WebP 不是一回事
WebP 其实是共用一个扩展名的两种格式。无损 WebP 是逐像素精确的容器,性质接近 PNG,转出来的 PNG 和原图每个像素都一样,只是体积一般会大一些。有损 WebP 走的是一套和 VP8 视频同源的编码, 它丢掉的东西在这个页面拿到文件之前就已经没了。
大致可以从体积上判断你手里是哪一种:尺寸不小但只有几百 KB 的截图和导出图,几乎都是有损的; 体积大得跟尺寸不太相称的,大概是无损的,转完你根本看不出任何变化。
批量和尺寸的上限
文件是在你自己机器上一个接一个处理的,所以几百张图在笔记本上没问题,在手机上会明显慢。 真正的天花板是尺寸:超过大约 4096 × 4096 像素就会撞上浏览器对 canvas 面积的限制,本工具 会直接告诉你,而不是像很多转换器那样丢给你一张空白图。