答案 0 :(得分:4)
// to extract the components into individual ints.
int argb = something();
int red = 0xFF & ( argb >> 16);
int alpha = 0xFF & (argb >> 24);
int blue = 0xFF & (argb >> 0 );
int green = 0xFF & (argb >> 8 );
// to recreate the argb
int argb = (alpha << 24) | (red << 16 ) | (green<<8) | blue;
答案 1 :(得分:3)
我相信这应该有用
int RGB = alpha;
RGB = (RGB << 8) + red;
RGB = (RGB << 8) + green;
Rgb = (RGB << 8) + blue;
还有另一种没有位移的方式,但我相信你会弄明白的。
这个也没关系:
int rgba = new java.awt.Color(r,g,b,a).getRGB();
答案 2 :(得分:3)
我会使用java.awt.Color
。
int ARGB = new Color(red, green, blue, alpha).getRGB();
我猜你使用按位运算来拉出各个颜色通道,但Color
类可以隐藏那些血腥细节。
Color color = new Color(ARGB);
int red = color.getRed();
int green = color.getGreen();
// etc.