gpt4 book ai didi

html - 如何正确渲染离屏 Canvas

转载 作者:可可西里 更新时间:2023-11-01 13:45:54 28 4
gpt4 key购买 nike

我正在尝试创建一个离屏渲染 Canvas 的基本示例,但我在 js“无法读取上下文属性”中出错。实际上我的想法是创建一个演示,就像我在 https://yalantis.com/ 中看到的那样我想创建我的名字首字母。如果有更好的想法来实现这一目标,请赐教。谢谢 这里是我在实际实现之前的基本尝试:)

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Off Screen Canvas</title>
<script>
function createOffscreenCanvas() {
var offScreenCanvas= document.createElement('canvas');
offScreenCanvas.width= '1360px';
offScreenCanvas.height= '400px';
var context= offScreenCanvas.getContext("2d");
context.fillRect(10,10,200,200);
}
function copyToOnScreen(offScreenCanvas) {
var onScreenContext=document.getElementById('onScreen').getContext('2d');
var offScreenContext=offScreenCanvas.getContext('2d');
var image=offScreenCanvas.getImageData(10,10,200,200);
onScreenContext.putImageData(image,0,0);
}
function main() {
copyToOnScreen(createOffscreenCanvas());
}
</script>
<style>
#onScreen {
width:1360px;
height: 400px;
}
</style>
</head>
<body onload="main()">
<canvas id="onScreen"></canvas>
</body>
</html>

最佳答案

您可以通过以下方式实现这一点......

function createOffscreenCanvas() {
var offScreenCanvas = document.createElement('canvas');
offScreenCanvas.width = '1360';
offScreenCanvas.height = '400';
var context = offScreenCanvas.getContext("2d");
context.fillStyle = 'orange'; //set fill color
context.fillRect(10, 10, 200, 200);
return offScreenCanvas; //return canvas element
}

function copyToOnScreen(offScreenCanvas) {
var onScreenContext = document.getElementById('onScreen').getContext('2d');
onScreenContext.drawImage(offScreenCanvas, 0, 0);
}

function main() {
copyToOnScreen(createOffscreenCanvas());
}
canvas {
border: 1px solid black;
}
<body onload="main()">
<canvas id="onScreen" width="1360" height="400"></canvas>

注意:永远不要使用 css 设置 Canvas 的宽度和高度。而是使用 Canvas 的 native 宽度和高度属性。

关于html - 如何正确渲染离屏 Canvas ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43369748/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com