Вы не можете точно воспроизвести изображение, используя только маскированный слой в градациях серого на сплошном цветном фоне, поскольку оттенок зеленого цвета также изменяется вдоль вертикального градиента.
Вы можете довольно близко подойти, просто выбрав один из средних зеленых оттенков в центре изображения с помощью инструмента «Пипетка», максимально увеличив его насыщенность и значение и сделав этот цвет прозрачным, используя инструмент « Слой → Прозрачность → Цвет в альфа-канал ...» . Однако это приведет к тому, что ваш слой будет иметь цветовые оттенки сверху и снизу, чего вы, возможно, не захотите.
Лучшим решением может быть разложение изображения на оттенок, насыщенность и значение (HSV), отбрасывание канала оттенка и восстановление каналов насыщенности и значения в маску в оттенках серого, которая может быть наложена поверх любого чистого насыщенного цвета для воспроизведения насыщенности и значение исходного изображения с новым оттенком.
Один из способов сделать это будет:
Используйте инструмент Цвета → Компоненты → Разобрать ... , чтобы разложить изображение на слои в режиме HSV.
Удалите слой оттенка. Мы не будем его использовать.
Выберите слой насыщенности, откройте диалоговое окно « Слой → Маска → Добавить маску слоя ... », выберите режим «Копия слоя в оттенках серого» и установите флажок «Инвертировать маску».
Повторите шаг 3 для слоя значений.
Используя инструмент заливки заливки (в режиме «Заполнить все выделение»), заполните слой значений (а не его маску!) Всем черным, а слой насыщенности - белым.
Переместите слой значений над слоем насыщенности в стеке.
При желании, объедините слои вместе с помощью Image → Merge Visible Layers ... или Layers → Merge Down .
Результирующее полупрозрачное изображение в градациях серого должно выглядеть так:
Нажмите, чтобы скачать / просмотреть в полном размере.
Хитрость в том, что после шагов 3–5:
- слой «насыщенности» будет чисто белым, если исходный цвет был насыщенным на 0%, и прозрачным, где он был насыщенным на 100%, и
- слой "value" будет чисто черным, если исходный цвет имел значение 0%, и прозрачным, если он имеет значение 100%.
Помещение этих двух слоев (или их объединенной комбинации) поверх чистого насыщенного цветного фона затем повторяет процесс преобразования цвета HSV в RGB: вы начинаете с чистого насыщенного цвета правильного оттенка, смешиваете достаточно белого, чтобы получить желаемый насыщенности, а затем смешайте достаточно черного цвета, чтобы получить желаемое значение.
Вот как выглядит полученное изображение на различных цветных фонах:
Цвета: зеленый ( #83ff00
), синий ( #00aeff
), оранжевый ( #ffa200
), красный ( #ff002a
).
hue-rotate
фильтр CSS3 для изменения цвета не вариант? См stackoverflow.com/questions/17721960/... или stackoverflow.com/questions/12546499/...