iOS 如何计算工具栏渐变?我希望能够设置我的窗口的背景颜色以匹配渐变中的结束颜色,以便它看起来淡入视图。问题是最终色调似乎因基色而异,我找不到产生匹配的一致公式。
问问题
342 次
1 回答
2
我的最佳近似值:
(r', g', b') = (f(r), f(g), f(b)) where f(x) = 0.001468x^2 + 0.647295x + 4.04025
我是如何得出的:让c = (r, g, b) = base color
. 让c' = (r', g', b') = resulting color
. 我让c = #944321 = (148, 67, 33)
和得到c' = #84361b = (132, 54, 27)
。
这给了我三个方程来解决:
f(148) = 132
f(67) = 54
f(33) = 27
由于我们有三个方程,让f(x)
是一个具有三个未知数的多项式:
f(x) = Ax^2 + Bx + C
从那里我在我的计算器上制作了一个 3x4 矩阵,输入了不同的 x 值,并在矩阵上执行了缩减行梯队,解决方案是(0.001468, 0.647295, 4.04025)
. 我将它们插入 A、B 和 C 并得到上述f(x)
.
这是一个执行计算的快速 Python 脚本。
用法:./script.py rrggbb
#!/usr/bin/env python
import sys
def end_color(color):
def f(x):
return int(round(0.001468 * x ** 2 + 0.647295 * x + 4.04025))
rgb = (int(color[i:i+2], 16) for i in xrange(0, 6, 2))
return ''.join(hex(f(n))[2:] for n in rgb)
for color in sys.argv[1:]:
print end_color(color)
我用颜色对此进行了测试#9e3393
,得到了#8f2983
iOS 产生的相同颜色:
$ ./script.py 9e3393
8f2983
即使有时不准确,也可能无法分辨,因为您使用的是渐变末尾的颜色。希望有帮助!
于 2012-07-07T06:21:09.553 回答