是否可以设置HTML5画布中位图的大小,以使其与设备像素的显示大小完全匹配,即,即使{{1} }不是整数?
关于如何在webglfundamentals上调整画布大小有很好的描述,但是不能正确处理非整数window.devicePixelRatio
上的画布。到目前为止,我的理解:
devicePixelRatio
设置画布的显示大小。canvas {width: 200px;}
或JS中的<canvas width="100"/>
。canvas.width = 100
和object-fit
的影响)。object-position
的表达式。canvas.clientWidth
是一个整数,其单位是CSS像素,是计算出的内容宽度(加上填充)。我不知道浏览器实际上是将内容绘制成CSS像素总数还是设备像素总数。因此,webglfundamentals建议类似
canvas.clientWidth
但是如果canvas.width = Math.floor(canvas.clientWidth * window.devicePixelRatio);
是一个分数,则有时不起作用(在整数坐标上绘制的2像素宽的线是模糊的)。我的1920x1080屏幕默认情况下window.devicePixelRatio
为1.5,页面缩放会对此产生影响,因此devicePixelRatio
通常不是整数的原因很多。我们该怎么办?