2017-03-15 67 views
0

很簡單的問題,但我無法在任何地方找到文檔。我如何告訴canvas.toDataURL()將文件保存爲PNG-8?如何使用toDataURL設置爲PNG8?

thumbnail = canvas.toDataURL(); 

我知道我可以通過「image/jpeg」來獲得一個jpeg,但是PNG-8怎麼樣?

+0

非常簡單的答案:不幸的是你不能; sprcs沒有增加thos選項。你將不得不從imageData中自己編碼PNG(IIRC有一些js項目是這樣做的) – Kaiido

回答

0

目前在任何主流瀏覽器中都沒有常見的內置方法來生成調色板索引PNG。瀏覽器只有required to support basic PNG 24位位圖和alpha。

儘管他們可以自由支持任何他們想要的格式,但它們不太可能偏離跨瀏覽器兼容的範圍(有一些例外,但在Safari中使用TIFF,Firefox中的ICO )。

爲了今天的工作,您需要提取像素,將顏色量化爲調色板,然後編譯文件,格式化位圖,對其進行編碼並壓縮 - 然後將其保存。這是可行的,但它是一個獨立的項目。

可選查看服務,如TinyPNG [我不隸屬於]。它們提供了一個API,它可以用於以編程方式發送普通的PNG,並使返回的PNG最小化,通常意味着「PNG8」。