Clase de robot Java | Obtener el color de píxel de un punto dado

Robot es parte del paquete java.awt. La clase de robot se utiliza básicamente para generar eventos de entrada del sistema nativo con el fin de realizar demostraciones autoejecutables, automatización de pruebas y otras aplicaciones en las que se utiliza el control del mouse y el teclado. 
La clase de robot genera eventos que se pueden usar para controlar el mouse, el teclado y se pueden usar para tomar capturas de pantalla de la pantalla. 
En este artículo discutiremos cómo obtener el color de píxel del punto en la pantalla mencionado por el usuario.
Método utilizado: 
 

getPixelColor(int x, int y)  
This function returns an object of the color class 
of the given screen coordinates. 

En el siguiente programa imprimiremos una etiqueta que contendrá los valores RGB del píxel ingresado y el texto de la etiqueta será del color del píxel
 

Java

// Java program to get the pixel color of
// given screen coordinates
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class color extends JFrame
    implements ActionListener {
    // textfield to get x, y coordinates
    static JTextField x, y;
 
    // button
    static JButton b;
 
    // create a frame
    static JFrame f;
 
    // label
    static JLabel l;
 
    public static void main()
    {
 
        // create a frame
        f = new JFrame("pixel Color");
 
        // label to show the RGB value
        l = new JLabel("no value");
 
        // create the text field
        x = new JTextField(16);
        y = new JTextField(16);
 
        // create a button
        b = new JButton("find");
 
        // create an object of the class
        color co = new color();
 
        // add ActionListener
        b.addActionListener(co);
 
        // create a panel
        JPanel p = new JPanel();
 
        // add textfield and button to the panel
        p.add(x);
        p.add(y);
        p.add(b);
        p.add(l);
 
        // add the panel
        f.add(p);
 
        // set the size of the frame
        f.setSize(500, 500);
        f.show();
    }
 
    // if the button is pressed
    public void actionPerformed(ActionEvent e)
    {
        String s = e.getActionCommand();
        if (s.equals("find")) {
            int xp, yp;
 
            // get user inputs of x and y position
            xp = Integer.parseInt(x.getText());
            yp = Integer.parseInt(y.getText());
 
            // try and catch block to handle exceptions
            try {
                // create an object of robot class
                Robot r = new Robot();
 
                // get the pixel color
                c = r.getPixelColor(xp, yp);
            }
            catch (Exception evt) {
                // print error message
                System.err.println(evt.getMessage());
            }
 
            Color c;
 
            // set the RGB value to the label
            // and to its foreground
            l.setForeground(c);
            l.setText("Red = " + c.getRed() + ",
Green = " + c.getGreen() + ", Blue = " + c.getBlue());
        }
    }
}

Producción : 
 

Nota: es posible que el siguiente programa no se ejecute en un compilador en línea; utilice un IDE sin conexión.
 

Publicación traducida automáticamente

Artículo escrito por andrew1234 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *