Как преобразовать значение 16 цветов в значение 32 цветов? - PullRequest
0 голосов
/ 06 января 2012

У меня есть набор значений 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 Ответ

1 голос
/ 06 января 2012

Чего ты пытаешься достичь? Ваш метод будет работать. По сути, это линейная интерполяция между существующими значениями. Но даст ли это вам хорошие результаты или нет, зависит от того, что вы пытаетесь сделать.

Возможно, вам лучше преобразовать в пространство восприятия, например, HSV (цветовое пространство Hue, Saturation, & Value), и выполнить интерполяцию в этом пространстве, а затем преобразовать обратно в RGB. Интерполяции в RGB имеют тенденцию к серому, тогда как в перцептивных пространствах они имеют тенденцию давать нам то, что мы считаем «промежуточными» цветами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...