【发布时间】:2013-10-20 14:46:31
【问题描述】:
我在画布上绘制了数千个点,其中每个点都是一个带有小 alpha 值的弧,基本上是一个密度图。起初我使用 0.1 作为 alpha,但使用 0.05 可以获得更好的结果。我很惊讶 0.05 有效(Chrome),因为我从未在任何代码中看到大于 1 的小数精度。
alpha 值是否有一些官方精度,还是取决于浏览器的实现?
【问题讨论】:
标签: html html5-canvas alpha rgba
我在画布上绘制了数千个点,其中每个点都是一个带有小 alpha 值的弧,基本上是一个密度图。起初我使用 0.1 作为 alpha,但使用 0.05 可以获得更好的结果。我很惊讶 0.05 有效(Chrome),因为我从未在任何代码中看到大于 1 的小数精度。
alpha 值是否有一些官方精度,还是取决于浏览器的实现?
【问题讨论】:
标签: html html5-canvas alpha rgba
精度应为 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 通道和一个底层 32bpp 画布(虽然我找不到任何支持文档!)。另请注意,目前,每个通道仅 8 位可以通过#AARRGGBB 表示法提供,因此可以支持更高的 internal 颜色深度(即从 48 -bit 图像,12 位/通道)当前未公开。
2 如果显示硬件较低(例如 16bpp 或 24bpp),那么在显示时会发生一些内部精度损失。较低质量的显示器也容易出现偏差或校准不良。此外,环境中的照明对图像的感知方式也有很大影响。
【讨论】: