仅将画布的一部分传输到新画布

时间:2015-05-29 02:29:08

标签: javascript html html5 canvas html5-canvas

我有canvas id cnv

<canvas id='cnv'></canvas>

enter image description here

黑色矩形是整个画布。我想创建另一个仅包含旧画布中的白色区域的画布。如何将画布的一部分转移到新画布?

 var cnv = document.getElementById('cnv');

我上面的代码中我不知道下一步该怎么做。

1 个答案:

答案 0 :(得分:1)

假设您在x,y,width和height中指定了区域,您可以执行以下操作:

function regionToCanvas(canvas, x, y, w, h) {

    var c = document.createElement("canvas"),       // create new canvas
        ctx = c.getContext("2d");                   // context for new canvas

    c.width = w;                                    // set size = w/h
    c.height = h;

    ctx.drawImage(canvas, x, y, w, h,  0, 0, w, h); // draw in region at (0,0)
    return c;                                       // return canvas
}

然后打电话,例如:

var newCanvas = regionToCanvas(cnv, x, y, width, height);
document.body.appendChild(newCanvas);              // add to DOM