鼠标光标下的RGB值

2022-04-19 00:00:00 rgb java

使用以下类:

import java.awt.AWTException;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;
import javax.swing.JFrame;

如何让程序在我将鼠标悬停在屏幕上时读取RGB值,并让JFrame显示颜色本身。RGB值。可能还有颜色的名称


解决方案

package stack;

import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.PointerInfo;
import java.awt.Robot;

public class TheColorInfo {
    static PointerInfo pointer;
    static Point point;
    static Robot robot;

    static Color color;

    public static void main(String[] args) {
        try{
            robot = new Robot();

            while(true){
                pointer = MouseInfo.getPointerInfo();
                point = pointer.getLocation();
                if(point.getX() == 0 && point.getY() == 0){
                    break; // stop the program when you go to (0,0)
                }else{
                    color = robot.getPixelColor((int)point.getX(),(int)point.getY());
                    System.out.println("Color at: " + point.getX() + "," + point.getY() + " is: " + color);
                }
            }
        }catch(Exception e){

        }
    }
}  
上面的SSCCE展示了如何使用Robot类获取屏幕上任何像素的颜色。

由于getPixelColor()的返回类型为java.awt.Color,因此可以提取像素的红、绿、蓝三个值。我已将图形用户界面添加给您。

相关文章