Я пытаюсь эмулировать Эффект оттенка Open XML. Что он делает, это изменяет оттенок пикселей на изображении, сдвигая оттенок. Требуется 2 параметра: 1) hue
(в градусах) и 2) amt
(сумма, процент). Это # 2, с которыми у меня проблемы. Спецификация гласит:
Оттенок : смещение значений цвета эффекта в сторону или от оттенка на
указанная сумма.
- amt (Сумма) - указывает, насколько смещается значение цвета.
- оттенок (оттенок) - указывает оттенок, к которому следует подкрашивать.
Не обращая внимания на конструкцию XML, я могу эмулировать значения, у которых amt
составляет 100%. Так, например, если я хочу синий (оттенок: 240 °), я могу создать его ( Тонированный один). Вот пример:
Оригинал и Тонировка (оттенок = 240, сумма = 100%).
Это достигается просто установкой оттенка на 240, сохранением насыщенности и яркости, преобразованием в RGB и записью каждого пикселя.
Вот чего я не могу достичь:
Оттенок = 240 ( синий ), Сумма = 30% , 50% и 80% соответственно
Опять же, в спецификации для Amount
указано Определяет, на сколько смещено значение цвета . Я перепробовал здесь все способы, чтобы заставить это работать, но, похоже, не могу (hue=hue*amount
, originalhue * amount + hue
и т. Д.)
Дополнительные примеры: Hue = 120 ( зеленый ), сумма = 30% , 50% 80% и 100% соответственно. 100% , который я могу получить.
Вот несколько списков значений одного пикселя на картинках выше:
Пиксель 159, 116 - Синие картинки
<b>Hue Amount R G B | H S L</b>
<b>Original 244 196 10 <b>|</b> 48 0.92 0.5</b>
Blue 240 30% 237 30 45 <b>|</b> 356 0.85 0.52
Blue 240 50% 245 9 156 <b>|</b> 323 0.93 0.5
Blue 240 80% 140 12 244 <b>|</b> 273 0.91 0.5
Blue 240 100% 12 12 244 <b>|</b> 240 0.91 0.5
Пиксель 159, 116 - Зеленые картинки
<b>Hue Amount R G B | H S L</b>
<b>Original 244 196 10 <b>|</b> 48 0.92 0.5</b>
Green 120 30% 211 237 30 <b>|</b> 68 0.85 0.52
Green 120 50% 159 237 30 <b>|</b> 83 0.85 0.52
Green 120 80% 81 237 29 <b>|</b> 105 0.85 0.52
Green 120 100% 29 237 29 <b>|</b> 120 0.85 0.52
Итак, вопрос: кто-нибудь знает, как это должно работать?
Примечание: это , а не дубликат: