如果逐步缩放画布,为什么在Chrome中获得更高的图像质量?

时间:2019-05-04 09:08:46

标签: javascript html5-canvas image-quality

在Chrome中使用HTML canvas时,为什么可以得到更好的图像质量:

 ctx.scale(0.5, 0.5);
 ctx.drawImage(image, 10,10);
 ctx.clearRect(0, 0, canvas.width, canvas.height);

 ctx.scale(0.5, 0.5);
 ctx.drawImage(image, 10,10);

代替:

ctx.scale(0.25, 0.25);
ctx.drawImage(image, 10,10);

换句话说,如果我将图像缩小到50%两次而不是直接缩小到25%,我将获得更好的质量。在Chrome中,当我分两步缩放文本时,文本的模糊程度要小得多(我正在渲染主要由文本组成的大型PNG)。

画布定义为:

<canvas id="canvas" width="2600" height="2400"></canvas>

图片为:

var image = new Image();
image.src = "myimage.png";

隔离:

我已经在Chrome,Firefox,Edge和IE中进行了尝试。只有在Chrome中才能看到更高的图像质量。我已经看到了许多其他有关如何改善图像质量的变体(在StackOverflow上进行了介绍),但是我们有相当大的代码库,并且引入其他一些选项将需要对渲染器进行更多的重新设计。

背景:

我正在开发可渲染大图像(3000x3000像素)的网络应用。该应用程序允许用户放大/缩小,平移并标记图像中的对象。

我猜测分两步进行缩放会使代码在Chrome中进行一些优化,但是我不确定这是否是获得更好图像质量的可靠方法。

0 个答案:

没有答案