Ява свинг. Как изменить интенсивность цвета с черного на белый? - PullRequest
2 голосов
/ 08 ноября 2010

Я не вижу, как изменить цвет только с черного на белый. Grayscale. * * 1001

Мой пример. У меня есть значения, которые идут от 0 до 100.

Их представление таково:

0 - черный

100 - Белый

Я рисую JComponent, и всякий раз, когда мне нужно изменить цвет, мне приходится звонить

g.setColor(Color);

Но как заставить его менять цвет только с черного на белый, в зависимости от моего числа (чем больше число, тем светлее цвет)? Как манипулировать над RGB?

Ответы [ 3 ]

4 голосов
/ 08 ноября 2010

Color API имеет значения HSB, которые могут оказаться более простыми в использовании.

Вы также можете использовать HSL Colors .Проверьте вкладку «яркость», когда вы начинаете с черного или белого цвета.

3 голосов
/ 08 ноября 2010

Нет, конечно, никакого изменения цвета с черного на белый, как такового, за исключением постепенно более светлых оттенков серого.

Итак, просто используйте равные значения RGB, рассматривая 0 - 100 в процентахиз 255.

Например, 50% составляет RGB 128 128 128 (хотя в зависимости от округления вы можете получить 127 127 127).

Выражение для перехода от значения в процентах к 0-255::

rgb=(pct*255)/100;
0 голосов
/ 08 ноября 2010

Пока значения равны в rgb, у вас есть серый.

так

g.setColor(new Color(0, 0, 0);

белый.

g.setColor(new Color(255,255,255);

черный

g.setColor(new Color(128,128,128);

- это равное сочетание белого и черного.

...