【问题标题】:Why is the alpha value represented as a float? [closed]为什么 alpha 值表示为浮点数? [关闭]
【发布时间】:2014-06-19 13:27:13
【问题描述】:

RGBA 颜色由三个 8 位颜色值和一个 poorly defined 浮点值表示是否有特殊原因?

我的意思是,最后,alpha 值确实会转化为二进制。正确的?所以我不明白拥有三个定义明确的值的意义,我只能猜测它的准确度。

例如,如果我使用值 0.1 - 最终结果会是什么真的

【问题讨论】:

  • 你最好问www-style
  • 你是说在 Stack Exchange 上没有合适的地方问这个问题?
  • 我的印象是,您正在寻找有关 HTML 标准的历史课程,特别是与颜色相关的课程。您还非常强烈地暗示 HTML 标准中颜色的定义方式在某种程度上是“错误的”。
  • 我希望有一些像样的文档,是的。
  • 这是要显示的图层的百分比。例如,在 50% 时,一半的像素将是指定的颜色。数学相当复杂。 en.wikipedia.org/wiki/Alpha_compositing 它不必是浮点数,它可以是一个值在 0 到 255 之间的字节。例如,OpenGL 文档以这种方式定义了一种颜色。 (参见 glColor4b)。同样,颜色也可以是浮点数。

标签: css rgba


【解决方案1】:

Alpha 是一个百分比(0.1 alpha = 10% 不透明度),通常在浮点数中指定百分比,因为它们更精确。

如果您使用整数表示百分比,您可能会将其指定为(int)10 = 10%。这适用于偶数,但由于某种原因你想要非常精确,比如 10.3%。那会是什么整数? 103 可能会与 103% 混淆。

关键是浮点数可以非常精确地指定任何百分比,而整数则不能。因此,百分比值由浮点数表示。例如:

0% = 0.0f

105% = 1.05f

74,31985% = 0.7431985f

等等

尽管其中一些在 alpha 颜色的情况下不会成为问题,但让百分比表示浮动只是一个好习惯。

【讨论】:

  • 但是这个百分比真的代表了最终会发生什么吗?我想我要说的是: alpha 值不是在某处转换为整数值吗?或者浏览器如何渲染 .1 的东西?如果是这样的话,增加的精确度不是虚假的吗?另外,为什么很难找出浮点表示的精确度?
  • 我不知道 ^^ 我只是认为它是浮动的原因是因为这就是人们表示百分比的方式:P
【解决方案2】:

rgba 中的 a 表示不透明度。

color: rgba(0,0,0,0.5); 将显示 50% 不透明的黑色。该值从 0 到 1。如果您想要更深的颜色,请尝试 0.7 或 1 以获得全纯黑色。

【讨论】:

  • 嗯,是的。明显地。但是为什么不是整数值呢?
猜你喜欢
  • 2023-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多