使用drawImage和imageSmoothing禁用Javascript Canvas不完美像素

标签 javascript html canvas graphics

我已使用禁用图像平滑

context.imageSmoothingEnabled = false;

如果你看下图中的橙色物体(用 Chrome 放大) 你可以看到像素是如何奇怪地对齐的。

weird pixels

我可以向您保证原始图像是 8x8,像素位置完美:

original image

我不确定这是否是禁用图像平滑的结果,或者是否与 Canvas 的分辨率有关。如何使像素一致且大小固定?

现场演示:https://jsfiddle.net/khjnqLjo/1/

最佳答案

您正在将 8x8 像素的图像绘制到 20x20 的矩形中。这将导致不正确的缩放,因为您无法绘制半像素。通过将矩形大小设置为 8 的倍数或将原始图像的宽度/高度更改为 10 像素来解决此问题。

关于使用drawImage和imageSmoothing禁用Javascript Canvas不完美像素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47173723/

相关文章:

java - 当 Canvas 移动到显示边框时,不会调用 onDraw()

c# - 如何在不缩放主摄像头的情况下为移动设备创建可缩放的 Canvas 图像?

html - 如何在不缩放的情况下使用 HTML5 canvas 翻转图像

javascript - 我无法使用 PHP 在 Shopify 中更新产品

javascript - 如何在按钮:focus by jquery上添加Class()和removeClass()

javascript - 面积图上的 nvd3 方向轴

html - 显示 HTML 用户输入,安全问题

javascript - 在 react 中,如何更改链接在 index.html 头部的 CSS 文件?

php - Htaccess,目录样式不重写为查询样式

jquery - 输入框最后的当前颜色