Why changing canvas size resets its parameters?

若如初见. 提交于 2019-12-17 07:53:28

问题


When I change the canvas size, I notice the parameter 'mozImageSmoothingEnabled' is being reset.

HTML

<canvas id='canv'>Your browser don't support canvas.</canvas>

Javascript

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'

JSFiddle: https://jsfiddle.net/epvtuz37/

Is this a bug, or expected behavior?


回答1:


Because when you change the canvas width or height parameters, every properties of the attached context are reset to their default.

From specs

When the canvas element is created, and subsequently whenever the width and height attributes are set (whether to a new value or to the previous value), the bitmap and any associated contexts must be cleared back to their initial state and reinitialized with the newly specified coordinate space dimensions.



来源:https://stackoverflow.com/questions/40732357/why-changing-canvas-size-resets-its-parameters

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!