У меня есть целочисленный пиксель, полученный из getRGB(x,y)
, но я не имею ни малейшего понятия о том, как преобразовать его в формат RGBA. Например, -16726016
должно быть Color(0,200,0,255)
. Какие-нибудь советы?
Как преобразовать getRGB (x, y) целого пикселя в цвет (r, g, b, a) в Java?
Ответ 1
Если я угадаю правильно, вы получите целое число без знака в форме 0xAARRGGBB
, поэтому
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
будет извлекать цветовые компоненты. Тем не менее, быстрый взгляд на документы говорит, что вы можете просто сделать
Color c = new Color(argb);
или же
Color c = new Color(argb, true);
если вы хотите альфа-компонент в цвете, а также.
ОБНОВИТЬ
Красные и синие компоненты инвертированы в исходном ответе, поэтому правильный ответ будет:
int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;
обновлен также в первом куске кода
Ответ 2
Color c = new Color(-16726016, true);
System.out.println(c.getRed());
System.out.println(c.getGreen());
System.out.println(c.getBlue());
System.out.println(c.getAlpha());
выдает:
0
200
0
255
Это то, что вы имеете в виду?