了解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

回到顶部