0

我正在使用 image.getRGB() 方法,但我不确定我得到的 int 值是什么意思。它返回一个-1,我不知道为什么。我只想看看一个像素是黑色还是白色。

4

2 回答 2

3

a-1可能意味着 0xFFFFFF 是白色的?

另请参阅此问题Java BufferedImage getRGB method and Color class to convert an RBG int value into a Colorinstance

于 2013-10-21T02:06:11.220 回答
0

首先,您需要知道对于 java,需要 4 个字节来存储 int;

其次,getRGB 方法返回 RGB 的 alpha、red、green、blue 分量,每个分量占用 1 个字节,1 个字节表示 8 位。

第三,您可能需要知道 alpha 表示不透明程度(表示不透明)

并且,二进制补码中的-1是 11111111 11111111 11111111 11111111 (如上所述的 int 32 位)

最后,现在您知道 alpha 部分是 255,因此是红色、绿色、蓝色。这意味着,颜色不是透明的和白色的。

于 2013-10-21T03:49:24.277 回答