2017-04-15 65 views
0

我知道一个公式的颜色转换成RGB它。例如,隐蔽颜色的RGB值在Java中

Color c=new Color(100,100,100); 
Int rgb1= c.getRed()*65536+c.getGreen()*256+c.getBlue(); 

这就是我们如何得到单一的RGB值。

使用Java编程

int rgb2=c.getRGB(); 

当我比较这两RGB1和RGB2,他们表现出不同的值。 我的第一个等式出了什么问题。请解决我的问题。由于

+0

是什么getRead()返回? –

+0

对不起,它的getRed()。我已纠正它。 –

+0

作为一个侧面说明,左移'a << b'在数学上等价于乘法'a * 2^b'。由于使用打包字节而不是实际数字,因此将这些乘法操作作为左移将更加通俗。 '(红色<< 16)| (绿色“8”)蓝色' – Radiodef

回答

1

,由于第一种方式忽略色彩的阿尔法值。
您可以看到c.getAlpha()返回255,并且您不使用此值,但c.getRGB();确实使用它,因此它返回FF646464(以十六进制表示),这与646464不同。

+0

没有想到这一点。你能告诉我如何添加阿尔法值。 –

+0

看这里 - http://stackoverflow.com/questions/2534116/how-to-convert-get-rgbx-y-integer-pixel-to-colorr-gba-in-java – TDG

+1

这里就像一个在一个示例OP显示了这种情况。 http://ideone.com/dWwtk8 – Radiodef