html - rgba 中 alpha 值的精度

标签 html html5-canvas alpha rgba

我在 Canvas 上绘制了数千个点,其中每个点都是一个具有小 alpha 值的弧,基本上是一个密度图。起初我使用 0.1 作为 alpha,但使用 0.05 得到更好的结果。我很惊讶 0.05 有效(Chrome),因为我从未在任何代码中看到大于 1 的小数精度。

alpha 值是否有一些官方精度,还是仅取决于浏览器的实现?

最佳答案

精度 应为 1/256(~0.004 或大约“0.5% 不透明度增量”)1

范围 是 [0, 1],超出此范围的值没有意义 - 因为范围分别对应于完全透明(0% 不透明)和 100% 不透明。值将被裁剪以适合此范围。

对于两个帐户,值 0.05 都非常合适(并且与 0.1 不同)。视觉变化(或视觉吸引力)的实际数量将取决于显示硬件2 和人类感知 - 在任何情况下,我希望 0.05 为“95% 透明”,而 0.1 为“90 % 透明”。


1 这是假设一个 8 alpha channel 和一个底层 32bpp Canvas (尽管我找不到任何支持文档!)。另请注意,目前,每个 channel 可以通过#AARRGGBB 表示法提供 8 位,因此虽然可以支持更高的内部颜色深度(即从 48 加载时位图像,12 位/ channel )目前未公开。

2 如果显示硬件较低(例如 16bpp 或 24bpp),则显示时会发生一些内部精度损失。较低质量的显示器也容易出现偏差或校准不佳。此外,环境中的照明对图像的感知方式也有很大影响。

关于html - rgba 中 alpha 值的精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19478737/

相关文章:

javascript - 如何使用canvasxpress更改饼图中的颜色

html - 带图像的 CSS3 Speechbubble

javascript - 设置 knockout 中的下拉值

asp.net - html 页面的 ASP 服务器统计信息

javascript - 如何创建在我的网站上可见的预加载器?

css - 将 three.js 背景更改为透明或其他颜色

python - 获得 Windows 透明度 wxPython

html - 透明png不在背景中显示视频

iPhone 在触摸位置清除 UIView alpha

c# - Html/Css CSHTML - 某些元素的 Accordion 不打开