Bir BufferedImage'da bir pikselin rengini almak istiyorum. BufferedImage'ın arka planını beyaza ayarlıyorum ve BufferedImage'da (100, 100) - (100, 200) arası bir çizgi çiziyorum. Sonra BufferedImage'ı bir JPanel üzerine çiziyorum. Hat var ama arka plan beyaz değil. Niye ya?Bir BufferedImage üzerinde pikselin rengini alın
Ayrıca getRGB yöntemi, getRGB olmasa bile R, G ve B için 0 değerini döndürür (100, 100). Yanlış olan ne?
kodu:
public class PixelColour extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
Graphics2D g2 = (Graphics2D) g;
BufferedImage bi = new BufferedImage(500, 500, BufferedImage.TYPE_INT_ARGB);
Graphics2D gbi = bi.createGraphics();
gbi.setColor(Color.black);
gbi.setBackground(Color.white);
gbi.drawLine(100, 100, 100, 200);
g2.drawImage(bi, null, 0, 0);
int rgb = bi.getRGB(100, 100);
int red = (rgb >> 16) & 0xFF;
int green = (rgb >> 8) & 0xFF;
int blue = (rgb & 0xFF);
System.out.println(red + " " + green + " " + blue);
}
public static void main(String[] args) throws IOException{
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.setVisible(true);
}
}
Bu yanıt derdin ne yazdırır ?? http://stackoverflow.com/questions/36246988/cannot-get-colour-of-pixel-on-screen – gpasch
@gpasch Bir Robot yerine BufferedImage kullanarak yapmaya çalışıyorum. – Saiyan