只需使用或图案填充板枯萎drawImage
(后者要求您使用翻译将瓷砖放在正确的位置)。
drawImage 将新的目标大小作为参数,因此您也可以缩放图块。
这是我为其他一些问题所做的模式实现,但我假设您应该能够看到代码中发生了什么:
function fillPattern(img, w, h) {
//draw the tile once
ctx.drawImage(img, 0, 0, w, h);
/// draw horizontal line by cloning
/// already drawn tiles before it
while (w < canvas.width) {
ctx.drawImage(canvas, w, 0);
w *= 2;
}
/// clone vertically, double steps each time
while (h < canvas.height) {
ctx.drawImage(canvas, 0, h);
h *= 2;
}
}
正如您在用于(具有实时缩放和平铺的视频墙)的实现中看到的那样,性能很好。
要将其更多地投影到您拥有的东西上-您可以简单地将画布绘制到新位置并填充新的“间隙”,而不是像上面那样绘制每个图块:
ctx.drawImage(myCanvas, offsetX, offseY);
fillGap();
您可以使用 drawImage 进行剪辑,但画布将在内部将其剪辑为新的,因此当您将部分图像移到画布外时,在 JavaScript 中剪辑图像没有任何好处。