2011-08-09 137 views
2

如果我在画布上绘制矩形,请用纯色填充。是否可以用透明png重新填充它,这样我仍然可以在背景中看到原始颜色?Javascript - 画布 - 在previousley上填充透明png填充颜色

喜欢的东西,以虚设码 -

ctx.beginPath(); 
    ctx.lineTo(//draw a rectangle) 
    ctx.fillStyle = "#FF0000" 
    ctx.fill(); 
    var imageObj = new Image(); 
    function drawPattern() { 
     var pattern = ctx.createPattern(imageObj, "repeat"); 
     ctx.fillStyle = pattern; 
     ctx.fill(); 
    } 
    imageObj.onload = drawPattern; 
    imageObj.src = "images/dot.png"; //transparent png 

我已经尝试了类似的方法,它不工作。

是否有另一种方法呢?我错过了什么吗?

+0

它为我在Chrome。你确定它是透明的吗? – pimvdb

+0

嗯,将再次检查。谢谢 – Finnnn

回答

4

你有什么会工作得很好。确保你有一个真正透明的PNG。

这是你的代码的工作示例:

http://jsfiddle.net/BDXc7/

+0

非常感谢这个例子,为我解决了一些问题。这是巴新。 *耻辱的头* – Finnnn

+0

不重复模式与翻译的上下文显示透明度问题。 http://jsfiddle.net/e8dpzt2o/ – jeeeyul