【问题标题】:How to find a single RGB and opacity value from RGB values of a view against black and white backgrounds如何从针对黑白背景的视图的 RGB 值中找到单个 RGB 和不透明度值
【发布时间】:2021-10-29 08:25:45
【问题描述】:

我想构建一个键盘扩展,它在深色和浅色模式下看起来都类似于 iPhone 的本机键盘。但是,我很难找到在黑色和白色背景下匹配 iOS 键盘的键盘键的 RGB 和不透明度值。我在下面有浅色和深色背景下的键盘图片。给定这两个图像,如何找到 RGB 和不透明度值?使用颜色选择器,我得到键盘键在浅色背景下的颜色是 RGB(150, 150, 150),不透明度为 1,在深色背景下的颜色为 RGB(107, 107, 107),不透明度为 1。我需要一个 RGB和一个不透明度值,以便在浅色背景下等效于 RGB(150, 150, 150) 和深色背景下的 RGB(107, 107, 107)。

【问题讨论】:

    标签: ios colors rgb opacity


    【解决方案1】:

    假设灰度颜色与简单的 alpha 合成,让...

    • Gc = 合成结果的灰度
    • Gb = 背景灰度
    • Gk = 键帽灰度
    • Ak = 键帽的 alpha 级别

    然后

    • Gc = Gk + Gb * (1 - Ak)

    (这里假设 Ae 介于 0 和 1 之间。)

    现在一些已知级别(正如我在您的屏幕截图中测量的那样):

    对于灯光模式,

    • Gb = 106
    • GC = 150

    对于深色模式,

    • Gb = 64
    • GC = 151

    由此,我们可以得出:

    • 150 = Gk + 106 * (1 - Ak)
    • 106 = Gk + 43 * (1 - Ak)

    由此可以推导出 Ak:

    • 150 - 106 = (106 - 43) * (1 - Ak)
    • 因此 Ak = 0.3016

    从 1 到 255,Ak = 77。

    然后你可以推导出 Gk = 76。

    【讨论】:

    • 不,没用。这就是它的样子:imgur.com/a/OthHU7a
    • 背景颜色比您之前显示的颜色更深。这会影响键的显示方式。如果是简单的灰度色调的 alpha 混合,那么 Gc = Gk + Gb * (1 - Ak) 应该是正确的。
    猜你喜欢
    • 2021-02-01
    • 2017-06-17
    • 2015-05-05
    • 2015-08-07
    • 2023-03-17
    • 2017-04-02
    • 1970-01-01
    • 2017-01-26
    • 1970-01-01
    相关资源
    最近更新 更多