-
ID:hQshq3 さんの質問

canvasで画像データの描画処理において、clip() を利用してクリッピング領域を制約し画像を表示することが出来ますが、

例:円形のクリッピングパス
ctx.beginPath();
ctx.arc(50, 50, 45, 0, Math.PI * 2, false);
ctx.clip();

var img = new Image();
img.src = "clip_pic.png?" + new Date().getTime();
img.onload = function() {
ctx.drawImage(img, 0, 0);
}

上記は円形のクリッピングパスですが、透過pngやベクター形式の画像データからクリッピングパスを生成することはできるのでしょうか?

例えば人物を形どった画像を描画したい時、人物のシルエットをクリッピングパスに使いたいといった形です。

どうぞよろしくおねがいいたします。

みんなの回答 2 件

ID:IxDyo7 さんの回答

ImageDataを使ってシルエットの部分かどうかを確認しながら
それに合わせて対象画像の要らないところを透過や白黒等で塗りつぶす

ID:TbKYx9

画像のアルファ値だけを移せばできますね

ID:k9l5or さんの回答

クリッピングパスを作成するわけではありませんが、globalCompositeOperation = "destination-atop" を用いる事によってご希望の効果が得られるのではないかと思います。

canvasで揺らめく画像マスクは可能ですか? - jsdo.it - Share JavaScript, HTML5 and ...

http://jsdo.it/qa/226
最終更新日:2013-12-06 (3,554 views)

関連するトピックス

ページ上部に戻る