Как объединить доминирующие цвета?

Здарова всем!) Вопрос, конечно, можно увидеть в названии, но чтоб было понятно всем, объясню:

Есть множество статей, где описываются различные классы определения доминирующих цветов в изображении. С этим я разобрался... Где можно узнать информацию как объединить цвета? Это нужно мне для фильтрации поиска. Допустим нажал на красную кнопочку и тебе выдало +100500 красных картинок. Но как вы уже знаете существует +100500 оттенков красного цвета. Причем не только красного, но и слегка оранжевого или фиолетового. В общем нужны мануалы, где описаны методы объединения цветов.
  • Вопрос задан
  • 2775 просмотров
Пригласить эксперта
Ответы на вопрос 1
ghaiklor
@ghaiklor
NodeJS TechLead
Когда-то писал наложение одного цвета на другой с помощью этого:
var result = [],
    alpha = this.getAlpha(),
    otherAlpha = 0.5,
    source = this.getSource(),
    otherSource = otherColor.getSource();
for (var i = 0; i < 3; i++) {
    result.push(Math.round((source[i] * (1 - otherAlpha)) + (otherSource[i] * otherAlpha)));
}
result[3] = alpha;
this.setSource(result);
return this;

Полный код - здесь. Это библиотека Fabric.js.

Вам нужна эта формула - Math.round((source[i] * (1 - otherAlpha)) + (otherSource[i] * otherAlpha)), которая выполняет наложение одного на другой цвет. Где source - исходный цвет (массив с R, G, B, A), otherSource (массив с R, G, B, A), otherAlpha - результирующая прозрачность.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы