Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/400.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何防止画布上的图像像素化?_Javascript_Html_Performance_Canvas - Fatal编程技术网

Javascript 如何防止画布上的图像像素化?

Javascript 如何防止画布上的图像像素化?,javascript,html,performance,canvas,Javascript,Html,Performance,Canvas,我有一个奇怪的例子,画布上的图像在清理画布和重画图像几次后(通常在6-10次清理/重画之间)被像素化 相关代码如下: 清理画布: ctx.clearRect(0,0,c.宽度,c.高度) 添加新图像: var blobImage = new Image(); blobImage.src = 'blob.png'; blobImage.onload = function() { ctx.drawImage(blobImage, x, y); } HTML(完整性): 因此,目前,在任何

我有一个奇怪的例子,画布上的图像在清理画布和重画图像几次后(通常在6-10次清理/重画之间)被像素化

相关代码如下:

清理画布:

ctx.clearRect(0,0,c.宽度,c.高度)

添加新图像:

var blobImage = new Image();
blobImage.src = 'blob.png';
blobImage.onload = function() {
    ctx.drawImage(blobImage, x, y);
}
HTML(完整性):

因此,目前,在任何时间点,屏幕上最多有8个斑点。当这个数字改变时(向下为1),每次改变时,我都会用一个更少的斑点重新绘制画布

以下是水滴最初的样子:

然后,在所述(可变)重绘量之后,它们开始看起来像:

也会出现轻微的剪切


我不使用任何外部库,只使用标准的
html
js
。我甚至不知道如何开始故障排除,因此任何建议都将不胜感激

只要将宽度更改为800px,它就可以工作:

<canvas id="myCanvas" width="800px" height="800px"></canvas>

或者将高度更改为600px

<canvas id="myCanvas" width="600px" height="600px"></canvas>


可能会有帮助,请分享整个代码。清除和图像加载部分的关系如何?您所展示的显然是反序列化工件,但如果您正确地清除了上下文,则不应该发生这些情况,因此,如果您有上下文,则可能没有正确地清除。您好@kaido,您是否合理地期望用户共享其整个代码库?我们实际上要求他们共享一个。请注意,它必须是最小的,即只需要重现问题所需的内容,但仍然足够完整,以便我们可以重现。你不会期望医生在没有检查你或无法了解你的病情的情况下告诉你应该吃什么药?这里也一样。谢谢@kaido,我也读了一个问题的要求;)我所提供的是重现问题所需的一切。。。我知道这很奇怪,所以我把它贴在这里。现在,如果你想帮忙,但不能用我描述的方法重现问题,请务必让我知道,这样我们可以一起尝试找到答案!Hi@stefo91,这无论如何都不是缩放问题,只是更改画布不会影响图像渲染。