我有从中获得的整数像素getRGB(x,y)
,但我不知道如何将其转换为 RGBA 格式。例如,-16726016
应该Color(0,200,0,255)
。有小费吗?
如果我猜对了,你得到的是一个无符号整数的形式0xAARRGGBB
, so
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
将提取颜色成分。然而,快速浏览一下docs http://java.sun.com/j2se/1.4.2/docs/api/java/awt/Color.html#Color%28int%29说你可以这样做
Color c = new Color(argb);
or
Color c = new Color(argb, true);
如果您还想要颜色中的 alpha 分量。
UPDATE
红色和蓝色分量在原始答案中颠倒了,所以正确的答案是:
int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;
也在第一段代码中进行了更新
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)