rgbバイトを操作して画像にデータを保存しようとしています。ただし、変換rgb-byte[]とその逆が同じ値を返すことはありません。ビットシフトを伴う独自のメソッドを使用した後、Java Colorクラスを使用しましたが、アルファチャネルにバグがあるようです。次のテスト方法はカラー値に対しては正常に機能しますが、アルファ値は毎回異なります。
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にバグがありますか?