如何将16色值转换为32色值?

时间:2012-01-06 06:35:40

标签: java user-interface

我有一组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}这是一个合适的方法?

1 个答案:

答案 0 :(得分:1)

你想要完成什么?你的方法会奏效。它本质上是现有值之间的线性插值。但它是否会给你带来好的结果取决于你想要做什么。

转换到感知空间可能会更好,例如HSV(色调,饱和度和值颜色空间),并在该空间中进行插值,然后转换回RGB。 RGB中的插值倾向于灰色,而在感知空间中,它们倾向于给我们提供我们所认为的“中间”颜色。