SrcURLが異なる2つのhtmlimgオブジェクトがあります。これら2つの画像を(キャンバスを使用して)結合し、1つのマージされたimgオブジェクトを作成したいと思います。
これは可能ですか?どうやって?
両方の画像をキャンバスに描画して、好きなオーバーレイモードと組み合わせることができます。キャンバスからビットマップデータを取得するには、「toDataURL」を使用できます。両方の画像はページと同じドメインからのものである必要があることに注意してください。そうしないと、セキュリティ上の理由からピクセルデータへのアクセスがブロックされます。
var canvas = document.getElementById("canvas");
var ctx = canvas.getContext("2d");
var img1 = loadImage('http://upload.wikimedia.org/wikipedia/en/2/24/Lenna.png', main);
var img2 = loadImage('http://introcs.cs.princeton.edu/Java/31datatype/peppers.jpg', main);
var imagesLoaded = 0;
function main() {
imagesLoaded += 1;
if(imagesLoaded == 2) {
// composite now
ctx.drawImage(img1, 0, 0);
ctx.globalAlpha = 0.5;
ctx.drawImage(img2, 0, 0);
}
}
function loadImage(src, onload) {
// http://www.thefutureoftheweb.com/blog/image-onload-isnt-being-called
var img = new Image();
img.onload = onload;
img.src = src;
return img;
}
必要に応じて適応させます。 :)