1

背景画像付きのpngでマスクされた画像を作成しようとしています。マスクされた画像のみを配置すると正常に機能しますが、背景画像を追加すると前面画像はマスクされなくなります

<script>
  var canvas = document.getElementById('myCanvas');
  var context = canvas.getContext('2d');

  var bg = new Image();
  var front = new Image();
  var mask = new Image();

  bg.src = 'img/background.jpg';

  bg.onload = function() {
    front.src = "img/tobemasked.jpg";
  };

  front.onload = function() {
    mask.src = "img/mask.png";
  }

  mask.onload = function() {
    display();
  }

  function display() {
    context.drawImage(bg, 0, 0); // it works if i remove this line
    context.drawImage(tmpMask, 0, 0);
    context.globalCompositeOperation = "source-in";
    context.drawImage(front, 0, 0);
  }
</script>

これはかなり一般的な問題だと思いますが、関連するものはウェブ上で見つかりませんでした。

ご協力ありがとうございました。

4

1 に答える 1