Javascript / HTML5使用图像填充画布

时间:2012-05-28 23:56:14

标签: javascript html5 canvas

我正试图让图片填满我的画布。这是我正在尝试的代码:

var blueprint_background = new Image();
blueprint_background.src = 'images/blueprint_background.png'; 
var pattern = context.createPattern(blueprint_background, "repeat");

context.fillStyle = pattern;
context.fill();

问题是什么都没有出现。我能够做基本的context.fillRect(..)示例,但这给了我麻烦。

感谢。

2 个答案:

答案 0 :(得分:10)

你必须等到图像加载,使用图像的onload属性来知道它何时加载。

var blueprint_background = new Image();
blueprint_background.src = 'images/blueprint_background.png'; 
blueprint_background.onload = function(){
    var pattern = context.createPattern(this, "repeat");
    context.fillStyle = pattern;
    context.fill();
};

答案 1 :(得分:0)

注意是否有人想从 Worker 中的图像创建模式。

Inside Worker class Image 未定义!

ReferenceError: Image is not defined

在这种情况下,我们可以执行以下操作:

const result = await fetch('./image.png');
const blob = await result.blob();
const image = await createImageBitmap(blob);
const pattern = canvasContext2D.createPattern(image, 'repeat');

然后简单地填充 OffscreenCanvasContext2D:

canvasContext2D.fillStyle = pattern;
canvasContext2D.fill();

参考文献: