【发布时间】:2013-10-21 02:01:53
【问题描述】:
我正在使用 image.getRGB() 方法,但我不确定我得到的 int 值是什么意思。它返回一个-1,我不知道为什么。我只是想看看一个像素是黑色还是白色。
【问题讨论】:
-
请贴代码;没有足够的信息给你答案。
标签: java image rgb pixel bufferedimage
我正在使用 image.getRGB() 方法,但我不确定我得到的 int 值是什么意思。它返回一个-1,我不知道为什么。我只是想看看一个像素是黑色还是白色。
【问题讨论】:
标签: java image rgb pixel bufferedimage
-1 可能意味着 0xFFFFFF 是白色的?
另请参阅此问题Java BufferedImage getRGB method and Color class 将 RBG int 值转换为 Color 实例
【讨论】:
首先,你需要知道对于 java 来说,存储 int 需要 4 个字节;
其次,getRGB方法返回RGB的alpha、红、绿、蓝分量,每个占1个字节,1个字节表示8位。
第三,你可能需要知道 alpha 表示不透明的程度(表示不透明)
并且,Two's Complement 中的 -1 是 11111111 11111111 11111111 11111111(如上所述的整数 32 位)
现在你终于知道 alpha 部分是 255,所以红色、绿色、蓝色。这意味着,颜色不是透明的和白色的。
【讨论】: