Java BufferedImage getRGB方法和Color类

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

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

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

最佳答案
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();
...

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

转载注明原文:Java BufferedImage getRGB方法和Color类 - 代码日志