Reputation: 16978
I'm trying to get an image to fill up my canvas. Here is the code I'm trying:
var blueprint_background = new Image();
blueprint_background.src = 'images/blueprint_background.png';
var pattern = context.createPattern(blueprint_background, "repeat");
context.fillStyle = pattern;
context.fill();
The issue is that nothing shows up. I was able to do the the basic context.fillRect(..) example, but this is giving me troubles.
Thanks.
Upvotes: 9
Views: 24408
Reputation: 729
Inside Worker class Image is not defined!
ReferenceError: Image is not defined
In such case we can do the following:
const result = await fetch('./image.png');
const blob = await result.blob();
const image = await createImageBitmap(blob);
const pattern = canvasContext2D.createPattern(image, 'repeat');
And then simply fill OffscreenCanvasContext2D:
canvasContext2D.fillStyle = pattern;
canvasContext2D.fill();
References:
Upvotes: 1
Reputation: 97672
You have to wait until the image loads, use the image's onload property to know when it loads.
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();
};
Upvotes: 14