画面上の特定のピクセルの色を探したいと思います。 JFrameの背景は白(RGB(255,255,255))に設定されています。 Graphicsオブジェクトは黒(RGB(0、0、0))に設定されています。画面上のピクセルの色を取得できません
私は長方形を描きます。 (100,100)は、矩形の輪郭上の画素である。
描画する前に、ピクセルの色は(100,100)になり、RGB(255,255,255)になります。描画後、ピクセルの色は(100,100)になり、RGB(255,255,255)になります。それはRGB(0、0、0)ではないでしょうか?また、出力は2回繰り返されます。どうして?
コード:
public void paintComponent(Graphics g){
Robot robot = null;
try {
robot = new Robot();
} catch (AWTException e) {
e.printStackTrace();
}
Color pixelColour;
g.setColor(Color.black);
pixelColour = robot.getPixelColor(100, 100);
System.out.println("Pixel colour at (100, 100) before drawing: " + pixelColour.toString());
g.drawLine(100, 100, 100, 200);
g.drawLine(100, 200, 300, 200);
g.drawLine(300, 200, 300, 100);
g.drawLine(300, 100, 100, 100);
pixelColour = robot.getPixelColor(100, 100);
System.out.println("Pixel colour at (100, 100) after drawing: " + pixelColour.toString());
}
public static void main(String[] args)
{
PixelColour pc = new PixelColour();
JFrame frame = new JFrame("Pixel colour");
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.getContentPane().add(pc);
frame.setSize(500,500);
frame.setBackground(Color.white);
frame.setVisible(true);
}
}
出力:
Pixel colour at (100, 100) before drawing: java.awt.Color[r=255,g=255,b=255]
Pixel colour at (100, 100) after drawing: java.awt.Color[r=255,g=255,b=255]
Pixel colour at (100, 100) before drawing: java.awt.Color[r=255,g=255,b=255]
Pixel colour at (100, 100) after drawing: java.awt.Color[r=255,g=255,b=255]