Java 鼠标单击图形后获取单个像素的颜色
当我用鼠标点击一个点时,我试图得到一个像素的颜色 我使用的是Java 鼠标单击图形后获取单个像素的颜色,java,awt,mouselistener,Java,Awt,Mouselistener,当我用鼠标点击一个点时,我试图得到一个像素的颜色 我使用的是图形,我成功地绘制了一个500x500的红色图形,但当我尝试在鼠标/鼠标位置(在我绘制的红色图形上方)获取像素的颜色时,它会打印出(0,0,0),而不是红色RGB值 public void getColor(int mouseX, int mouseY) { Color myColor = Color.RED; globalGraphics.setColor(myColor);
图形
,我成功地绘制了一个500x500的红色图形,但当我尝试在鼠标
/鼠标
位置(在我绘制的红色图形上方)获取像素的颜色时,它会打印出(0,0,0)
,而不是红色RGB值
public void getColor(int mouseX, int mouseY)
{
Color myColor = Color.RED;
globalGraphics.setColor(myColor);
globalGraphics.fillRect(0,0,500,500);
int color = getRGB(mouseX, mouseY);
int red = (color >> 16) & 0x000000FF;
int green = (color >>8 ) & 0x000000FF;
int blue = (color) & 0x000000FF;
System.out.println(red+" "+green+" "+blue);
}
public void mouseClicked(MouseEvent e)
{
int mouseY = e.getY();
int mouseX = e.getX();
getColor(mouseX,mouseY);
}
如果我没记错的话,0,0,0是黑色的,这正是鼠标所在像素的颜色,因为鼠标是黑色的,所以我会测试鼠标是否会干扰你的测量,然后在这里尝试mouseX-1,mouseY-1What is
getRGB
?要更快地获得更好的帮助,请发布一个(最小完整的可验证示例)或(简短、独立、正确的示例)。