Java Color函数返回较亮和较暗的阴影

Java Color函数返回较亮和较暗的阴影,java,android,android-layout,colors,Java,Android,Android Layout,Colors,假设我给函数一个简单的蓝色。然后,对于深蓝色和浅蓝色,它应该返回十六进制代码或RGB。我正在使用Java/android一个好方法是将其转换为,调整“亮度”组件,然后转换回RGB 我发现有两个页面提到了您可能使用的公式,或者您可以尝试用谷歌搜索java解决方案 另一种选择是使用,计算更容易 在YUV颜色空间中,可以通过更改Y值来调整黑暗度 RGB到YUV Y = (0.257 * R) + (0.504 * G) + (0.098 * B) + 16 V = (0.439 * R)

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

一个好方法是将其转换为,调整“亮度”组件,然后转换回RGB

我发现有两个页面提到了您可能使用的公式,或者您可以尝试用谷歌搜索java解决方案


另一种选择是使用,计算更容易

在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


()

好吧,这是你问题的答案,最浅的蓝色是白色,最深的是黑色。如果你尝试一下,这真的很容易。你试过了吗?你试过什么?(推断你的问题是“我该怎么做?”)@OldCurmudgeon即使这个问题很琐碎而且违反规则,你也可以费心去读更多的东西,而不仅仅是标题。@maghtypork-我做了-这一切都归结为什么是阴影?什么是深蓝色?什么是浅蓝色?比黑色更深的色调是什么?什么颜色比浅蓝色浅?什么颜色比那个颜色浅。。。是的,标题模棱两可。但是,如果你在RGB之外思考的话,术语“暗”和“光”是很容易想象的。在HSL中,它只是L的不同值。感谢您的回复。我将研究这些链接。从未听说过HSL。我可以用HSV代替HSL吗?简单地改变V值,这取决于你所考虑的“阴影”。HSL很容易使颜色变深或变浅。HSV可以做其他事情。我认为你想要的是真正的HSL,但你可以尝试两者,看看哪个更适合。YUV也可以很方便。你可能会想把Y值搞得一团糟。@Geobits谢谢你开阔了我的视野!YUV真的很好-我会把它添加到答案中。