1

我尝试通过操作 rgb 字节将数据保存在图像中。但是每次转换 rgb-byte[] 并返回不返回相同的值。在使用自己的位移方法之后,我使用了 Java Color 类,但似乎 alpha 通道存在错误。以下测试方法适用于颜色值,但 alpha 值每次都不同。

Random r = new Random();
int red = r.nextInt(255), green = r.nextInt(255), blue = r.nextInt(255), alpha = r.nextInt(255); 
Color one = new Color(red, green, blue, alpha);
Color two = new Color(one.getRGB());
System.out.println(one.getRed() + " " + one.getGreen() + " " + one.getBlue() + " " + one.getAlpha());
System.out.println(two.getRed() + " " + two.getGreen() + " " + two.getBlue() + " " + two.getAlpha());  

我做错了什么还是Java中有错误?

4

1 回答 1

0

单参数Color构造函数忽略 alpha。使用两个参数的构造函数:

Color two = new Color(one.getRGB(), true);
于 2012-09-28T17:20:06.997 回答