5

getRGB(x, y) 方法中的 x 和 y 参数代表什么?数值返回值代表什么?

如何识别绘图面板上显示的 BufferedImage 中特定像素的颜色?理想情况下,我想在图像中“找到”一个词,并在该词下划线或勾勒出该词以创建相关的超链接。如何将这些数值转换为人类可以理解的颜色,如“红色”、“绿色”或“蓝色”?

是的,我知道在 Color 类中,0-255 的 alpha 值表示透明到不透明。但这对实际颜色意味着什么?我很高兴澄清这是否没有意义。感谢您的阅读。

4

1 回答 1

6

x 和 y 坐标代表像素位置,x 从左到右,y 从上到下(均从 0 开始)。所以 (0, 0) 是左上角像素, (width-1, height-1) 是右下角像素。

返回的整数值将 R、G、B 和(可能)Alpha 值打包到单个 int 中。请记住,一个 int 包含 32 位,因此其中 8 位分配给每个值。

但是,如果您不擅长在整数内移动位,最简单的方法是将整数值传递给 Color 的构造函数

int rgba = image.getRGB(coordinates);
Color col = new Color(rgba, true);
int r = col.getRed();
int g = col.getGreen();
...

显然,从原始像素值中识别单词的位置是另一个非常复杂的问题。

于 2012-11-22T17:47:44.977 回答