簡體   English   中英

使用toDataURL()從Canvas導出時如何壓縮.png圖像?

[英]How to compress .png images when exporting from Canvas using toDataURL()?

需要使用HTML5畫布生成大小約為20k的.png圖像。 不幸的是,當使用toDataURL()方法創建.png時,您無法像使用jpeg一樣指定質量。

有任何解決方法的想法嗎? toDataURL似乎是從Canvas生成圖像的唯一方法,而canvas似乎是無需服務器交互即可進行圖像處理的最佳工具。 感謝任何建議。

有一種方法可以使用無損zlib壓縮程序http://www.w3.org/TR/PNG-Compression.html對PNG圖像進行壓縮。 有一個庫( https://github.com/ShyykoSerhiy/canvas-png-compression ),當圖像類型為'image / png'時,該庫為HTMLCanvasElement.toDataURL()提供填充,並能夠提供'quality'作為第二個參數到HTMLCanvasElement.toDataURL()以獲取png。

請注意,它僅在Chrome中提供更好的結果(較小的尺寸)。 Firefox的壓縮有時比canvas-png-compression(0.0.3版)更好。

您可以通過按比例縮小然后再按比例放大來執行某些操作。

  • 通過在較小的畫布上繪制來縮小比例,然后獲取數據URL。

  • 創建一個圖像對象,將數據URL設置為其來源。

  • 使用此img對象在原始畫布上繪制(顯然在onload事件回調中)

  • 通過嘗試一點,找到畫布的尺寸比例,以為您提供最佳效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM