在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中进行一些优化,但是我不确定这是否是获得更好图像质量的可靠方法。