如何使用toDataURL设置为PNG8?

How to use toDataURL to set as PNG8?

非常简单的问题,但我无法在任何地方找到文档。我如何告诉 canvas.toDataURL() 将文件保存为 PNG-8?

thumbnail = canvas.toDataURL();

我知道我可以通过 "image/jpeg" 获得 jpeg,但是 PNG-8 怎么样?

目前在任何主流浏览器中都没有生成调色板索引 PNG 的通用内置方法。浏览器只有 required to support basic PNG 24 位位图和 alpha。

虽然,他们可以自由支持他们想要的任何其他格式,但他们不太可能偏离跨浏览器兼容的格式太多(存在一些例外但使用不多,例如 Safari 中的 TIFF,ICO 中的火狐)。

然而,要使其在今天运行,您需要提取像素、将颜色量化到调色板中,然后编译文件、格式​​化位图、对其进行编码和压缩 - 然后将其保存出来。这是可行的,但它本身就是一个项目。

可选择查看 TinyPNG [I'm not affiliated]. They provide an API 等服务,它可用于以编程方式发送您的普通 PNG 并最小化返回的 PNG,通常表示 "PNG8"。