我試圖畫一個img
到canvas
。但是,不管是設置style
屬性還是在CSS中執行樣式,樣式都不會結轉。 下面是一個JSFiddle顯示我正在嘗試做什麼。DrawImage不顯示CSS樣式
我也嘗試將樣式應用到canvas
本身。這顯示正確,但是當我執行canvas.toDataURL(...)
它不會獲得樣式。
是否有其他方式將樣式應用於生成的數據?
我試圖畫一個img
到canvas
。但是,不管是設置style
屬性還是在CSS中執行樣式,樣式都不會結轉。 下面是一個JSFiddle顯示我正在嘗試做什麼。DrawImage不顯示CSS樣式
我也嘗試將樣式應用到canvas
本身。這顯示正確,但是當我執行canvas.toDataURL(...)
它不會獲得樣式。
是否有其他方式將樣式應用於生成的數據?
要將過濾器應用於畫布內容,可以使用前沿filter
property,該腳本使用與CSS filter
屬性相同的語法。之前你畫你的形象,做
context.filter = "grayscale(1)";
,您可以通過
context.filter = "none";
你過濾的圖像重置爲別的,你將來做將保持正確過濾 - 在filter
財產基本上告訴畫布上下文,「無論我從現在開始應該應用這個過濾器」,所以更改只會影響將來的繪圖操作。
謝謝!我仍然認爲自動應用CSS樣式會更好,但幸運的是,這正是我想要的特定情況。 – RareNCool
過濾器支持受限。如果您打算推出這些類型的功能,請檢查瀏覽器兼容性。 – Blindman67
這將取決於您想要應用的樣式。 CSS寬度和高度容易,CSS過濾器,3D轉換很多努力工作 – Blindman67
@ Blindman67過濾器就是我要做的,就像在小提琴中一樣。我不關心3D轉換。 – RareNCool
從[此刪除的問題](http://stackoverflow.com/q/42095361/)我會引用[K3N]的評論(http://stackoverflow.com/users/1693593/k3n):「您可以在上下文本身上使用新的[filter property](https://devdocs.io/dom/canvasrenderingcontext2d/filter)。在那裏使用相同的CSS過濾器,它將被應用到圖像數據本身。確保圖像被加載否則提取將失敗,在沒有支持的舊版瀏覽器或瀏覽器中,您需要模仿這些過濾器,CSS過濾器規格包含各種過濾器的收據。 – apsillers