javascript - 仅将 Canvas 的一部分转移到新 Canvas

标签 javascript html canvas html5-canvas

我有一个 canvasidcnv

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

enter image description here

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

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

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

最佳答案

假设您已经指定了 x、y、宽度和高度的区域,您可以执行以下操作:

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

关于javascript - 仅将 Canvas 的一部分转移到新 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30520153/

相关文章:

javascript - Bootstrap 4 菜单和 Logo 不会对齐

javascript - 如何从 javascript 警报获取值到 asp.net 中的文本框

javascript - 排序数组,使空值项出现在最后

javascript - html5中如何读取图片中的文字

JavaScript 环绕轮播

javascript - 对象获取相同的 api 端点

javascript - 如何根据按键点击过滤记录?

javascript - 如何用图像填充 Canvas 矩形

javascript - 通过单击切换 div 来关闭我的#overlay 和侧菜单?

javascript - 如何按时间顺序使用 Javascript 代码更改图像大小