Я пытаюсь сделать кодер/декодер в Java, чтобы я мог хранить значение RGB в формате Hex. У меня есть кодировщик вроде этого:Как кодировать и декодировать RGB в Hex
System.out.println("#" + Integer.toHexString(label.getColor().getRed())
+ Integer.toHexString(label.getColor().getGreen())
+ Integer.toHexString(label.getColor().getBlue()));
и декодер, как это:
System.out.println(decodeColor("#"
+ Integer.toHexString(label.getColor().getRed())
+ Integer.toHexString(label.getColor().getGreen())
+ Integer.toHexString(label.getColor().getBlue())));
Реализация decodeColor()
функция:
private RGB decodeColor(String attribute) {
Integer intval = Integer.decode(attribute);
int i = intval.intValue();
return new RGB((i >> 16) & 0xFF, (i >> 8) & 0xFF, i & 0xFF);
}
Когда я запускаю тестовую программу, я получаю этот выход:
- начальные значения ne ж RGB (15, 255, 45)
< \ ярлыком ... цвет = "# fff2d"> ... </метка>
RGB {15, 255, 45}
- начальные значения RGB (15, 0, 45)
< \ ярлык ... цвет = "# f02d"> ... </метка>
RGB {0, 240, 45}
Так, в некоторых случаях она возвращает правильный результат, но в другой его полностью перепутал. Почему это?
[Это] (https://www.google.co.in/?q=java+rgb+to+hex) может помочь. Также обратитесь к связанным вопросам справа. – devnull
Эти два обсуждения могут быть полезны: http://stackoverflow.com/questions/3607858/how-to-convert-a-rgb-color-value-to-an-hexadecimal-value-in-java и http: // stackoverflow.com/questions/4129666/how-to-convert-hex-to-rgb –