必須有辦法做到這一點。我用html5畫布畫了一個形狀,我想模糊它。據我所知,沒有本地方法,所以我假設需要一個js庫。問題是大多數圖書館只模糊圖像,例如this。這可能嗎?html畫布形狀模糊濾鏡
回答
您鏈接的pixastic庫示例實際上應該使用canvas元素作爲第一個參數而不是圖像。
默認情況下,pixastic庫會嘗試用您創建的canvas元素替換您傳入的節點。爲了防止這樣做,您可以添加一個選項來指定離開DOM節點,幷包含一個回調以自己處理返回的數據。事情是這樣的:
Pixastic.process(canvas, "blur", { leaveDOM: true }, function(img) {
canvas.getContext('2d').drawImage(img, 0, 0);
});
另外,如果你不希望依賴於庫,可以實現自己使用getImageData()模糊,操縱返回的像素數據,並使用putImageData()來繪製模糊圖像回到畫布。
另外需要注意的是,單個像素操作速度較慢,可能無法很好地處理大圖像。如果這是一個問題,您可以嘗試縮小圖像並縮小圖像,以便快速完成模糊效果。事情是這樣的:
ctx.drawImage(canvas, 0, 0, canvas.width/2, canvas.height/2);
ctx.drawImage(canvas, 0, 0, canvas.width/2, canvas.height/2, 0, 0, canvas.width, canvas.height);
酷,雖然這工作肯定,它不表現我喜歡的方式。我需要邊緣模糊很像高斯模糊行爲。我認爲這個庫使用框模糊方法。有任何想法嗎? – 2010-08-12 23:40:33
我不知何故忽略了你的第二種方法。讓我給一個鏡頭。 – 2010-08-12 23:57:10
你會碰巧有一個使用getImageData方法的例子嗎? – 2010-08-13 02:45:16
對於一個快速模糊,這幾乎是高斯我建議StackBlur: http://www.quasimondo.com/StackBlurForCanvas/StackBlurDemo.html
另外,您可以使用此超快方框模糊與2次迭代: http://www.quasimondo.com/BoxBlurForCanvas/FastBlurDemo.html
你可以使用CSS來模糊畫布。如果它只是你想要模糊的形狀,那麼這個形狀將需要位於它自己單獨的圖層(畫布)上,您可以隨時創建它。
例子:
canvas.style.webkitFilter = "blur(3px)";
您可以再次與聯合國模糊的帆布:
canvas.style.webkitFilter = "blur(0px)";
這可能是最快的(也是最簡單)的方式模糊的畫布 - 特別是對於移動設備。
https://github.com/nodeca/glur - 通過IIR濾波器實現高斯模糊。查看演示。
- 1. HTML畫布,畫的模糊多邊形
- 2. 模糊畫布形狀的邊框
- 3. 緩解模糊濾鏡
- 4. 在HTML畫布上繪製平面形狀會創建模糊的邊框
- 5. 如何修復HTML5畫布中的模糊形狀邊緣?
- 6. HTML5畫布:它可以模糊形狀和圖像
- 7. 如何在Firefox中設置動畫模糊濾鏡?
- 8. 高斯模糊濾鏡逆轉:iOS
- 9. iOS的10模糊濾鏡CSS
- 10. SVG模糊濾鏡邊緣假象
- 11. 將模糊濾鏡應用於BitmapData
- 12. 模糊濾鏡全頁導航
- 13. 反轉圖像模糊濾鏡(不模糊蒙版)
- 14. HTML畫布 - 間隔後繪製形狀
- 15. 模糊畫布元素?
- 16. html5圖像濾鏡與畫布
- 17. HTML5畫布對比度濾鏡
- 18. HTML5畫布不能應用sw濾鏡
- 19. 畫布畫越來越模糊
- 20. html5畫布形狀填充
- 21. HTML5 - 畫布形狀描邊
- 22. 帆布形狀動畫
- 23. HTML畫布:圓形形狀(行星)的內部陰影
- 24. JSFL:將模糊濾鏡添加到符號但更改模糊量
- 25. 鏡像Box2D形狀
- 26. 在模態中更改模糊濾鏡TitleWindows
- 27. 使用模糊濾鏡的OpenCV邊框模式問題
- 28. 形狀不畫在畫布上
- 29. 畫成畫布形狀的圖像
- 30. 畫布單線與筆畫形狀
試試這個:http://www.pixastic.com/lib/docs/actions/blurfast/ – 2014-07-08 03:35:09