我有一个PNG图形,我想在JS中用作我的画布背景。它应该以平铺格式显示。为此,我目前正在做这样的事情。最简单的方法来平铺JS中的图像
const ratioX = Math.ceil(canvas.width/image.width);
const ratioY = Math.ceil(canvas.height/image.height);
for (var x = 0; x < ratioX; x++) {
for (var y = 0; y < ratioY; y++) {
ctx.drawImage(image, x*image.width, y*image.height, image.width, image.height);
}
}
它的工作如预期,但性能可能不这样做的每一帧计算得到改善,但缓冲我的形象的更大的平铺版本。所以我正在寻找一种方法来创建此图像作为Image
类的实例或我可以用于drawImage()
的任何其他类。
起初我可能需要获取图像数据(所以每个像素的rgba信息)。我已经看到了一种像here这样的方式,使用canvas的上下文,但是我真的需要这样做吗?没有简单的方法吗?
第二步是从数据中创建一个可绘制的图像对象。我会怎么做?
我很想看到一种相当于Java的bufferedImage.getRgb(x, y)
和bufferedImage.setRgb(x, y, color)
的方式。在JS中是否存在这样的事情?
你尝试过http://www.w3schools.com/TAGS/tryit.asp?filename = tryhtml5_canvas_createpattern? – nicooga
检出:http://stackoverflow.com/questions/14121719/html5-canvas-background-image-repeat – JonSG