I have a getPixelColour function:
Color getPixelColor(int x, int y) {
if(mazeImage == null) System.out.println(":(");
int pixel = mazeImage.getRGB(x, y);
int red = (pixel & 0x00ff0000) >> 16;
int green = (pixel & 0x0000ff00) >> 8;
int blue = pixel & 0x000000ff;
return new Color(red,green,blue);
}
For example a pixel is black, and System.out.println(getPixelColor(x,y) + " " + Color.BLACK);
writes java.awt.Color[r=0,g=0,b=0] java.awt.Color[r=0,g=0,b=0]
But getPixelColor(x,y) == Color.BLACK returns false. What’s wrong with it?
You are comparing two different
Colorobjects which will return false (i.e., two different objects at different memory locations).If you wish to properly compare them, use
equals():