感谢您的时间 :)。我已经查看了 TYPE_INT_RGB 和 TYPE_INT_ARGB 的格式,现在知道如何将此 TYPE_INT_RGB 转换为 4 个单独的值,但是如果我要对每个值进行修改(比如每个添加 20,所以 Alpha+=20,red+=20 ,等等)我将如何将这些值重新组合成这种 TYPE_INT_RGB 格式?谢谢!
问问题
6178 次
3 回答
5
// 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;
于 2012-05-12T22:48:40.950 回答
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();
于 2012-05-12T22:20:53.457 回答
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.
于 2012-05-12T22:47:57.800 回答