canvasで描画した画像にパスを指定してマスクをかける方法をメモ。
サンプルコード
パスを指定してclip()を使います。
HTML
<canvas id="canvas" width="480" height="320"></canvas>
四角形でマスクをかけてみます。
JavaScript
window.onload = function() { draw(); } function draw() { var canvas = document.getElementById('canvas'); if(!canvas || !canvas.getContext) return false; var ctx = canvas.getContext('2d'); var img = new Image(); img.src = 'image.jpg'; img.onload = function() { // マスク ctx.beginPath(); ctx.moveTo(100, 50); ctx.lineTo(380, 50); ctx.lineTo(380, 280); ctx.lineTo(100, 280); ctx.clip(); // 画像の描画 ctx.drawImage(img, 0, 0); } }
円形でマスクをかけてみます。
JavaScript
window.onload = function() { draw(); } function draw() { var canvas = document.getElementById('canvas'); if(!canvas || !canvas.getContext) return false; var ctx = canvas.getContext('2d'); var img = new Image(); img.src = 'image.jpg'; img.onload = function() { // マスク ctx.beginPath(); ctx.arc(240, 170, 140, 0, Math.PI * 2, false); ctx.clip(); // 画像の描画 ctx.drawImage(img, 0, 0); } }
【参考サイト】
コメントが承認されるまで時間がかかります。