画布 - 合并两个图像,返回一个img html对象?

时间:2011-09-02 11:57:40

标签: html5 canvas html5-canvas

我有两个带有不同src网址的html img对象。我想组合这两个图像(使用画布),并创建一个合并的img对象。

这可能吗?怎么样?

3 个答案:

答案 0 :(得分:21)

您可以使用drawImageDemo。代码:

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)