base64

background

background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC)

canvas


function renderCanvas(img: HTMLImageElement) {
    const canvas = canvasRef.value;
    const ctx = canvas.getContext('2d')
    ctx.fillStyle = ctx.createPattern(img, 'repeat');
    ctx.scale(0.5, 0.4);
    ctx.fillRect(0, 0, canvas.width / 0.5, canvas.height / 0.4);
}

let img = new Image();
img.src = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAQMAAAAlPW0iAAAAA3NCSVQICAjb4U/gAAAABlBMVEXMzMz////TjRV2AAAACXBIWXMAAArrAAAK6wGCiw1aAAAAHHRFWHRTb2Z0d2FyZQBBZG9iZSBGaXJld29ya3MgQ1M26LyyjAAAABFJREFUCJlj+M/AgBVhF/0PAH6/D/HkDxOGAAAAAElFTkSuQmCC'
if (img.complete) {
    renderCanvas(img)
} else {
    img.onload = () => {
        renderCanvas(img)
    }
}