【问题标题】:Find RGBA value from RGB value with opacity of 0.5从不透明度为 0.5 的 RGB 值中查找 RGBA 值
【发布时间】:2015-05-05 10:47:22
【问题描述】:

我的颜色值为 rgb(92, 174, 224),并且希望在不透明度为 0.5(或我选择的任何值,可能为 0.4)且背景为白色 rgb(255) 时找到等效的 rgba , 255, 255)。

我希望答案采用等式的形式,例如:

div (d) = rgb(92, 174, 224) ---- (The colour to match)

background (b) = rgb(255, 255, 255) ---- (The colour behind the transparent colour)

x = (d - (b*0.5)) / 0.5
r = (d - (b*0.5)) / 0.5
g = (d - (b*0.5)) / 0.5
b = (d - (b*0.5)) / 0.5

【问题讨论】:

  • 你使用什么编程语言?
  • c# 和 asp.net,但样式在 css 内。我不是在寻找一种方法来做到这一点。只是一个公式/方程式。
  • 换句话说,我想将 rgb 转换为 rgba,其中 alpha/opacity 为 0.5。我想要一个方程式,这样我就可以改变目标颜色和不透明度的值,也许我应该改变背景颜色。
  • 我在 webmasterworld.com 上找到了这个解决方案:body - rgb(153,204,255) container - rgb(255,255,255) opacity:0.4 r value=(r*0.4)+(255*0.6)=153,其中给出 r=0 g 值=(g*0.4)+(255*0.6)=204,得到 g=127 b 值=(b*0.4)+(255*0.6)=255,得到 b=255 不透明度 div - rgb(0,127,255) 或 #007fff 但该等式没有描述如何找到“r”。所以我发布的示例方程是如何找到“r”。但是这些方程不适用于我的值,因为它们给出了负值和高于 255 的值。
  • 您查看过Alpha compositing 上的维基百科文章吗?它有点密集,但包含一些有用的信息。

标签: css transparency opacity alpha rgba


【解决方案1】:

如果我正确地发现了你的问题,那么这里就是给你的。

color = rgb(92, 174, 224);
// we will use color[0] to access first value

bg = rbg(255,255,255);
// we will use bg[0] to access first value

alpha = 0.6;

base = alpha/10;

现在计算如下。

ResultColor[0] = round( bg[0] - ( (bg[0] - color[0])/alpha ) - 1 )
ResultColor[1] = round( bg[1] - ( (bg[1] - color[1])/alpha ) - 1 )
ResultColor[2] = round( bg[2] - ( (bg[2] - color[2])/alpha ) - 1 )

所以结果颜色将是

ResultColor = rgb(173,214,239)

【讨论】:

  • 这是一个有趣的公式,但它并不是我想要的。我希望 div 的不透明度为 0.5 或 0.6。虽然出现与 rgb(92, 174, 224) 相同的颜色。所以我会找到 rgba 值 (x, x, x, 0.5) 或 (x, x, x, 0.6)
  • @Funtastic 如果您使用 rgb() 颜色方法,则无法实现 div 透明度。为此,您必须改用 rgba() 。但在这里我上面的公式是得到相当于 rgba 颜色的 rgb 值,其中基色是白色的可能是任何东西。所以如果你用 0.5 或 0.6 alpha 分配一个 div 红色,想知道什么是 rgb 等价物,那么上面就是公式
  • 感谢您的帮助。但我的问题是 rgba() 等价物。
  • 是的,这将为您提供 rgb 的 rgba 等效值。示例中已经明确说明。
  • 也许我对“等效”一词的使用有些混淆。我想要的是一个与给定 rgb 值的颜色相匹配的 rgba 值,不透明度/alpha 为 0.5 或 0.6。因为我需要一个与 rgb 颜色相同颜色的透明 div,以及找到该值的公式。
猜你喜欢
  • 2021-05-07
  • 2021-02-01
  • 2021-10-29
  • 2014-09-04
  • 1970-01-01
  • 2019-10-01
  • 1970-01-01
  • 2012-06-02
  • 2012-07-08
相关资源
最近更新 更多