了解BufferedImage.getRGB输出值
我使用这种方法获取图像中像素的整数值:
int colour = img.getRGB(x, y);
然后,我打印出这些值,然后看到黑色像素对应于“ -16777216”之类的值,蓝色对应于“
-16755216”之类的蓝色,等等。有人可以向我解释该值背后的逻辑吗?
回答:
getRGB(int x, int y)
返回位置 处的彩色像素值。
您误解了返回值。
它是二进制格式。就像11 … 11010101一样,它以int值的形式提供给您。
如果要获得该值的RGB(即红色,绿色,蓝色)分量,请使用Color类。例如
Color mycolor = new Color(img.getRGB(x, y));
然后,你可以通过使用获得红色,绿色或蓝色值getRed()
,getGreen()
,getBlue()
,getAlpha()
。然后int
,这些方法将以熟悉的格式返回具有值的值0
< value < 255
int red = mycolor.getRed();
如果您不想使用Color
类,那么您将需要使用按位运算来获取其值。
以上是 了解BufferedImage.getRGB输出值 的全部内容, 来源链接: utcz.com/qa/432351.html