我尝试通过操纵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中有错误吗?
答案 0 :(得分:0)
单参数Color
构造函数忽略alpha。使用two-arg构造函数:
Color two = new Color(one.getRGB(), true);