如何使用toDataURL设置为PNG8?

时间:2017-03-15 19:12:13

标签: javascript html5 canvas png todataurl

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

thumbnail = canvas.toDataURL();

我知道我可以通过“image / jpeg”获得一个jpeg,但PNG-8怎么样?

1 个答案:

答案 0 :(得分:0)

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

尽管如此,他们可以自由地支持他们想要的任何其他格式,但是他们不太可能从跨浏览器兼容的方面移动太多(存在一些例外但在Safari中没有使用很多例如TIFF,火狐中的ICO。

为了使今天能够工作,你需要提取像素,将颜色量化为调色板,然后编译文件,格式化位图,编码并压缩它 - 然后将其保存。它是可行的,但它本身就是一个项目。

可选择查看TinyPNG [我没有附属]等服务。它们提供API,可用于以编程方式发送普通的PNG并最小化返回的PNG,通常意味着" PNG8"。