2011-08-09 17 views
2

キャンバスに四角形を描画する場合は、単色で塗りつぶします。それは透明なPNGでもう一度塗りつぶすことができるので、私はまだ背景で元の色を見ることができますか?Javascript - Canvas - 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

例のために多くのおかげで、私のために物事をクリアしました。それはpngだった。 *ひどく頭を痛めます* – Finnnn

+0

翻訳された文脈でパターンを繰り返さないと、透明性の問題があります。 http://jsfiddle.net/e8dpzt2o/ – jeeeyul

関連する問題