Программно, как работает HUE, работающая в Photoshop?

StackOverflow https://stackoverflow.com//questions/9643404

  •  10-12-2019
  •  | 
  •  

Вопрос

в Photoshop Вы можете установить режим смешивания слоя, чтобы быть «оттенками». Если этот слой, например, наполнен синим, то, похоже, возьмет слой ниже и делает его всеми синим, где существует небезовый цвет.

Мне интересно, что это на самом деле делает. Если у меня есть фоновый слой с пикселем AARRGGBB, и слой сверху, который устанавливается в режим смеси «оттенок», и в этом слое есть пиксель Aargbb, как эти два значения объединены, чтобы дать результат, который мы видим? .

Это не просто отбрасывает rrggbb с слоя ниже. Если это сделало это, что окрасит белый и черный. Это также не позволит изменения цвета.

Если фоновый пиксель 0xFF00FF00, а соответствующий слой оттенка Pixel - 0xFF0000FF, то я предполагаю, что конечный результат будет просто 0xFF0000FF, потому что FF Blue заменяет FF Green. Но, если фоновый пиксель 0x55112233, а Pixel Pixel Hue - 0xFF0000FF, как он придумывает оттенок синего цвета, который он подходит?

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

Это было полезно?

Решение

Я нашел алгоритм для преобразования RGB в HSV здесь: http://www.cs.rit.edu/~ncs/color/t_convert.html

Конечно, внизу этой страницы упоминается, что java цветной объект уже имеет методы преобразования между RGB и HSV, поэтому я только что использовал это.

Другие советы

Я исследовал способ повторить этот режим смешивания в JavaScript / Canvas, но я придумал только режим фильтра / смеси «Colorize». (Примеры ниже)

Colorize алгоритм:

  1. Преобразовать цвета от RGB в HSL;
  2. Измените значение оттенка на нужный (в моем случае 172 ⁰ или 0,477);
  3. возвращает обновление HSL к RGB

    Примечание: это нормально на рабочем столе, но оно заметно медленно на смартфоне, я нашел.

    Вы можете увидеть разницу, сравнивая эти три изображения. Оригинал:

    Оригинальное изображение

    Раскатка:

    Результат с моим алгоритмом

    Фейерверки "Смешающий оттенок" Алгоритм (который я думаю, такой же, как Photoshop):

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top