缩放<canvas>时禁用插值
注意:这与放大时现有画布元素的呈现方式有关,而与线条或图形在画布表面上的呈现方式无关。换句话说,这与缩放元素的插值有关,而与在画布上绘制的图形的抗锯齿无关。我不关心浏览器如何画线;我关心的是浏览器在放大时如何渲染canvas元素本身。 是否可以通过编程更改画布属性或浏览器设置以在缩放<canvas>元素时禁用插值?跨浏览器的解决方案是理想的,但不是必需的。基于Webkit的浏览器是我的主要目标。性能非常重要。 这个问题最相似,但不能充分说明问题。对于它的价值,我尝试image-rendering: -webkit-optimize-contrast无济于事。 该应用程序将是用HTML5 + JS编写的“复古” 8位样式游戏,以明确我的需求。 为了说明,这是一个示例。(现场版) 假设我有一张21x21的画布... <canvas id='b' width='21' height='21'></canvas> ...具有CSS的元素使元素大5倍(105x105): canvas { border: 5px solid #ddd; } canvas#b { width: 105px; height: 105px; } /* 5 * 21 = 105 */ 我在画布上绘制一个简单的“ X”,如下所示: $('canvas').each(function () { var ctx = this.getContext("2d"); ctx.moveTo(0,0); ctx.lineTo(21,21); ctx.moveTo(0,21); ctx.lineTo(21,0); ctx.stroke(); …