Android меняет яркость цвета - PullRequest
1 голос
/ 03 января 2011

Я хочу изменить яркость любого данного цвета (Примечание: я не говорю о яркости экрана), я посмотрел на класс Color , у него есть несколько методов для преобразования между RGB и HSVЯ новичок в этой области.Для начала, как мне изменить яркость красного, если его значение указано в RGB (# FF0000)?

Ответы [ 3 ]

5 голосов
/ 03 января 2011

Самый простой способ - преобразовать цвет в HSL (не HSV! Они разные - см. http://en.wikipedia.org/wiki/HSL_and_HSV) и изменить компонент L - увеличить, чтобы сделать его ярче, уменьшить, чтобы сделать его темнее.

3 голосов
/ 12 ноября 2014

Учитывая, что вы говорите о яркости (усиление цвета), а не яркости (количество белого), ваша модель - HSV (иначе HSB), а не HSL.

При быстром брифинге, если вы улучшите канал V на HSV, скажем ... немного синего, у вас будет "более синий" цвет. Если вы улучшите канал L на модели HSL, у вас будет более «чистый и вымытый» синий.

Класс android.graphics.Color имеет встроенную поддержку модели HSV. Используйте Color.colorToHSV () и Color.HSVToColor () для редактирования значения яркости (или оттенка, или насыщенности, если вы подобное).

В модели HSV H (оттенок) определяет основной цвет, S (насыщенность) контролирует количество серого, а V контролирует яркость. Таким образом, если вы увеличиваете V и уменьшаете S одновременно, вы получаете больше яркости, на практике.

2 голосов
/ 03 января 2011

Для начала вам нужно запомнить две вещи -

  1. Чтобы уменьшить яркость, вы можете изменить красный цвет с # FF0000 на # AA0000 или # 880000 - в основном уменьшить красный компонент.
  2. Вы также можете попробовать уменьшить непрозрачность - часто вы поймете, что она работает лучше, чем просто уменьшение яркости.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...