Под «цветом» мы обычно подразумеваем 24-битный цвет RGB: 1 байт (8 бит) для красного, зеленого и синего.То есть каждый канал имеет значение от 0 до 255 или от 0x00 до 0xff на шестнадцатеричном дисплее.
Белый цвет - все каналы заполнены: #FFFFFF, черный - все каналы отключены: # 000000.Очевидно, что более светлый цвет означает более высокие значения в каналах, более темный цвет означает более низкие значения в каналах.
То, как именно вы выберете свой алгоритм, зависит от вас, простой будет:1008 * Редактировать: спрашивающий просит более полный пример, чтобы он / она мог лучше начать, вот он:
public static void main(String[] args) throws IOException {
String value =
// new Scanner(System.in).nextLine(); //from input
"#112233"; //from constant
int red = Integer.parseInt(value.substring(1, 1 + 2), 16);
int green = Integer.parseInt(value.substring(3, 3 + 2), 16);
int blue = Integer.parseInt(value.substring(5, 5 + 2), 16);
System.out.println("red = " + Integer.toHexString(red)
+ ", green = " + Integer.toHexString(green)
+ ", blue = " + Integer.toHexString(blue));
if (red + green + blue <= 0xff * 3 / 2)
System.out.println("using white color #ffffff");
else
System.out.println("using black color #000000");
String colorBackToString = "#" + Integer.toHexString(red) +
Integer.toHexString(green) +
Integer.toHexString(blue);
System.out.println("color was " + colorBackToString);
}
Он производит вывод:
red = 11, green = 22, blue = 33
using white color #ffffff
color was #112233
И показывает технику разделения цвета в формате #aabbcc на каналы rgb, объединения их позже (при необходимости) и т. Д.