我有一组RGB值
private static final int sixteen_Colour [][] = {
{ 237,237,237 },
{ 203,0,0 },
{ 240,56,0 },
{ 255,63,0 },
{ 255,115,0 },
{ 255,9,0 },
{ 255,290,0 },
{ 255,248,193 },
{ 255,255,255 },
{ 179,241,255 },
{ 83,209,255 },
{ 26,163,255 },
{ 0,121,123 },
{ 5,48,245 },
{ 54,5,191 },
{ 26,0,125 }
};
如果必须将它们转换成32个颜色值,我使用的一个方法是取两个集合的平均值,比如{237,237,237},{203,0,0}会导致{220,119,119}这是一个合适的方法?
答案 0 :(得分:1)
你想要完成什么?你的方法会奏效。它本质上是现有值之间的线性插值。但它是否会给你带来好的结果取决于你想要做什么。
转换到感知空间可能会更好,例如HSV(色调,饱和度和值颜色空间),并在该空间中进行插值,然后转换回RGB。 RGB中的插值倾向于灰色,而在感知空间中,它们倾向于给我们提供我们所认为的“中间”颜色。