Javascript 为什么更改画布大小会重置其参数?

Javascript 为什么更改画布大小会重置其参数?,javascript,firefox,canvas,mozilla,Javascript,Firefox,Canvas,Mozilla,更改画布大小时,我注意到参数“mozImageSmoothingEnabled”正在重置 HTML JSFiddle: 这是错误还是预期行为?因为当您更改画布宽度或高度参数时,附加上下文的每个属性都会重置为默认值 创建画布元素时,以及随后设置宽度和高度属性时(无论是设置为新值还是设置为以前的值),必须将位图和任何关联上下文清除回其初始状态,并使用新指定的坐标空间尺寸重新初始化 谢谢但这是意料之中的吗?它背后的基本原理是什么?是的,这是意料之中的,基本原理是上下文基于像素矩阵,如果更改此像素矩阵

更改画布大小时,我注意到参数“mozImageSmoothingEnabled”正在重置

HTML

JSFiddle:


这是错误还是预期行为?

因为当您更改画布
宽度
高度
参数时,附加上下文的每个属性都会重置为默认值

创建画布元素时,以及随后设置宽度和高度属性时(无论是设置为新值还是设置为以前的值),必须将位图和任何关联上下文清除回其初始状态,并使用新指定的坐标空间尺寸重新初始化


谢谢但这是意料之中的吗?它背后的基本原理是什么?是的,这是意料之中的,基本原理是上下文基于像素矩阵,如果更改此像素矩阵,其他所有内容都必须重置。对。非常感谢。
<canvas id='canv'>Your browser don't support canvas.</canvas>
var cnv = document.getElementById('canv');
var ctx = cnv.getContext('2d');
console.log(ctx.mozImageSmoothingEnabled); // default 'true'
ctx.mozImageSmoothingEnabled = false;
console.log(ctx.mozImageSmoothingEnabled); // shows 'false'
cnv.width = 100;
console.log(ctx.mozImageSmoothingEnabled); // shows 'true'