Ekranda belirli bir pikselin rengini bulmak istiyorum. JFrame'in arkaplanı, beyaz olan RGB'ye ayarlanır (255, 255, 255). Graphics nesnesi siyah olarak ayarlanmıştır, bu RGB'dir (0, 0, 0).Ekranda piksel rengi alınamıyor
Bir dikdörtgen çiziyorum. (100, 100), dikdörtgenin anahattında bir pikseldir.
Çizmeden önce, (100, 100) piksel rengini alıyorum ve RGB (255, 255, 255) değerini veriyor. Çizildikten sonra piksel rengini (100, 100) alır ve RGB (255, 255, 255) verir. RGB olması gerekmiyor mu (0, 0, 0)? Ayrıca, çıkış iki kez tekrar eder. Niye ya?
kodu:
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);
}
}
çıkışı:
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]