我有两个带有不同src网址的html img对象。我想组合这两个图像(使用画布),并创建一个合并的img对象。
这可能吗?怎么样?
答案 0 :(得分:21)
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;
}
根据需要进行调整。 :)
答案 1 :(得分:8)
您可以在画布上绘制两个图像,并将它们与您喜欢的任何叠加模式组合。要从画布获取位图数据,您可以使用“toDataURL”。请注意,两个图像都应来自与页面相同的域,否则出于安全原因,您将阻止访问像素数据。
答案 2 :(得分:-1)
你应该使用canvas API getImageData() https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Pixel_manipulation_with_canvas