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

Pau*_*Dee 11 html5 canvas html5-canvas

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

这可能吗?怎么样?

Juh*_*nen 20

你可以使用drawImage.演示.码:

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;
}
Run Code Online (Sandbox Code Playgroud)

根据需要进行调整.:)


Var*_*ant 8

您可以在画布上绘制两个图像,并将它们与您喜欢的任何叠加模式组合.要从画布获取位图数据,您可以使用"toDataURL".请注意,两个图像都应来自与页面相同的域,否则出于安全原因,您将阻止访问像素数据.