我正在为非常简单的任务而苦苦挣扎(嗯,我想是的)。我有byte[4]
表示颜色值的数组,例如byte[0] = alpha
等
byte [1] = red
。如何将此字节数组转换为实际的颜色对象?感谢您的回答。
问问题
8960 次
1 回答
14
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());
于 2013-07-11T21:20:55.573 回答