javascript - 如何使用toDataURL设置为PNG8?

标签 javascript html canvas png todataurl

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

thumbnail = canvas.toDataURL();

我知道我可以传递“image/jpeg”来获取 jpeg,但是 PNG-8 怎么样?

最佳答案

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

虽然,他们可以自由地支持他们想要的任何其他格式,但他们不太可能远离跨浏览器兼容的格式(存在一些异常(exception),但不常用,例如 Safari 中的 TIFF、Firefox 中的 ICO) .

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

可以选择查看 TinyPNG 等服务[我不隶属]。他们提供 API它可用于以编程方式发送普通 PNG 并返回最小化的 PNG,通常表示“PNG8”。

关于javascript - 如何使用toDataURL设置为PNG8?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42818725/

相关文章:

javascript - HTML Canvas 不会画线

javascript - 另一个最接近的子线程 : finding the nearest ancestor of an element that matches a selector

javascript - 使用 D3.js 计算 SVG 路径质心

Javascript 构造函数

javascript - $(this).val() 不适用于 FireFox 但适用于 Chrome

php - 如何使用 JQuery 刷新 JSON 数据?

javascript - 如何获取博主帖子提要并将其合并到 HTML5 页面?

javascript - 如何为 html5 canvas 添加喷漆工具?

Javascript - 将对象指向鼠标

jquery - 如何使用 jquery 在 DIV 标签内制作圆角框?