Java BufferedImage getRGB方法和Color类

时间:2012-11-22 17:39:29

标签: java image-processing colors

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

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

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

1 个答案:

答案 0 :(得分:5)

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();
...

显然,识别单词来自原始像素值的位置是一个完整的,非常复杂的问题。