颜色功能使阴影更亮,阴影更暗

时间:2013-08-02 21:47:37

标签: java android android-layout colors

假设我给这个函数一个简单的蓝色。然后它应该返回十六进制代码或RGB为深蓝色和浅蓝色。我在Java / android

工作

1 个答案:

答案 0 :(得分:3)

一种好方法是将其转换为HSL color space,调整“亮度”组件,然后转换回RGB。

我找到了两个页面,其中提到了您可能使用的公式,或者您可以尝试使用Google解决方案。

<强> RGB to HSL

<强> HSL to RGB


另一种选择是使用YUV color space,计算更容易。

在YUV色彩空间中,您可以通过更改Y值来调整暗度。

RGB到YUV

Y =  (0.257 * R) + (0.504 * G) + (0.098 * B) + 16

V =  (0.439 * R) - (0.368 * G) - (0.071 * B) + 128

U = -(0.148 * R) - (0.291 * G) + (0.439 * B) + 128

YUV到RGB

B = 1.164(Y - 16)                  + 2.018(U - 128)

G = 1.164(Y - 16) - 0.813(V - 128) - 0.391(U - 128)

R = 1.164(Y - 16) + 1.596(V - 128)

但是,您必须将'YUV'和'RGB'值钳位到0-255
(尝试value = value & 0xFF

source