javascript – 如何强制imageSmoothingEnabled为false
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript – 如何强制imageSmoothingEnabled为false,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1827字,纯文字阅读大概需要3分钟。
内容图文
![javascript – 如何强制imageSmoothingEnabled为false](/upload/InfoBanner/zyjiaocheng/726/9dcadde6f6e743268e56e628c3fe4e85.jpg)
我正在使用几个分层画布加上fabric.js画布,如下所示:
<canvas id="grid" width="1401" height="785"></canvas>
<div class="canvas-container" style="width: 1401px; height: 785px; position: relative; -webkit-user-select: none;">
<canvas id="fabric_canvas" class="lower-canvas" width="1401" height="785" style="position: absolute; width: 1401px; height: 785px; left: 0px; top: 0px; -webkit-user-select: none;"></canvas>
<canvas class="upper-canvas " width="1401" height="785" style="position: absolute; width: 1401px; height: 785px; left: 0px; top: 0px; -webkit-user-select: none; cursor: default;"></canvas>
</div>
<canvas id="keys" width="79" height="512"></canvas>
<canvas id="ruler" width="1024" height="50"></canvas>
<canvas class="helper" width="1401" height="785"></canvas>
所有这些画布上下文都将属性imageSmoothingEnabled设置为false但由于未知原因,始终为所有画布启用平滑并查询ctx.imageSmoothingEnabled返回true,即使它之前设置为false也是如此.
它似乎与fabric.js相关,因为当我没有初始化fabric.js画布时,imageSmoothingEnabled为false,但是一旦我初始化它,它们都被设置为true.
在Google Chrome下始终启用平滑,但在Firefox下,当我移动fabric.js画布视口(平移)或移动对象时,平滑会发生变化(开/关).
我使用此代码关闭标准画布的图像平滑(以及初始化后的fabric.js):
ctx.mozImageSmoothingEnabled = false;
ctx.oImageSmoothingEnabled = false;
ctx.webkitImageSmoothingEnabled = false;
ctx.msImageSmoothingEnabled = false;
ctx.imageSmoothingEnabled = false;
我也用它来为fabric.js画布设置图像平滑:
c_fabric = new fabric.Canvas("fabric_canvas", {
imageSmoothingEnabled: false
});
为什么会这样?
如何禁用图像平滑效果好?
解决方法:
经过几个小时的测试和调试后,问题解决了,显然需要在每个画布调整大小后再次设置imageSmoothingEnabled属性,这样就完全没有与fabric.js相关了,当通过setDimensions更改fabric.js画布尺寸时,库应该再次设置imageSmoothingEnabled,我会提出一个补丁.
内容总结
以上是互联网集市为您收集整理的javascript – 如何强制imageSmoothingEnabled为false全部内容,希望文章能够帮你解决javascript – 如何强制imageSmoothingEnabled为false所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。