我正在尝试将png图像绘制到画布中,但是质量确实很差。我正在使用drawImage方法:
src = folder+self.cur+".png";
imageObj.src = src;
imageObj.onload = function() {
context.clearRect(0, 0, cv, ch), context.drawImage(imageObj, 0, 0, cv, ch)
};
随附原始图像和结果在屏幕快照中的屏幕快照。现在,画布尺寸与图像相同,因此问题不是由调整大小引起的。
有什么想法导致此问题以及如何解决?这是一个例子。
主要错误是您未指定canvas元素的大小-您仅指定元素本身的CSS大小,这意味着canvas上下文将以默认大小300 x 150像素工作。
这将导致您显示的图像先缩小到300 x 150,然后再通过CSS放大到您想要的大小(但没有大小),从而产生模糊的外观。
要解决此问题,您需要专门在canvas元素上设置尺寸(以CSS像素为单位),而不要使用CSS规则:
#mapCanvas{
/*width:664px; Delete these
height:980px; */
}
并直接在canvas元素上将它们设置为属性而不是CSS:
<canvas id='mapCanvas' width=664 height=980></canvas>
您可以选择使用JavaScript进行设置
mapCanvas.width = 664; /// use integer values
mapCanvas.height = 980;
然后绘制图像。如上面的注释中所述,代码中也有错别字,如果您不调整图像大小,则无需指定图像的宽度和高度。
后者可以帮助您解决此问题-如果您将它们遗漏掉,则在这种情况下您会看到图像绘制得很大,表明画布的尺寸设置不正确。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句