我正在努力完成非常简单的任务(好吧,我想是这样)。
我有byte[4]
数组,表示像byte[0] = alpha
这样的颜色值,
byte [1] = red
等等。
如何将此字节数组转换为实际的颜色对象?
谢谢你的回答。
答案 0 :(得分:10)
Java中的字节是有符号的,所以正部分只能保持值直到127,RGB最高可达255.所以你必须补偿:
byte b = (byte) 130;
int i = b & 0xFF;
System.out.println(i); //Prints 130 again
然后可以将int传递给Color构造函数。
编辑:完整示例:
byte[] values = new byte[] {(byte) 130, (byte) 150, (byte) 200, (byte) 200};
Color color = Color.argb(values[0] & 0xFF, values[1] & 0xFF, values[2] & 0xFF, values[3] & 0xFF);
System.out.println(color + " alpha " + color.getAlpha());