1

我正在尝试制作一个应用程序来显示我的鼠标指向的颜色,我不是指在我自己的应用程序中,而是在任何屏幕上的窗口中的任何位置,有点像我的鼠标指针旁边的一个标签,它显示了确切的颜色。

例子

我是一名 Java 开发人员,但我不认为这可以在 java 中完成我想也许我需要某种脚本,但我不知道任何帮助会真正得到应用

4

3 回答 3

4

解决方案由两部分组成:

第 1 部分:检索颜色:

Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
Color color = new Robot().getPixelColor(mouseLocation.x, mouseLocation.y);

第 2 部分:获取颜色名称:

您可以从Wikipedia 的颜色列表中获得许多颜色及其名称的列表。给定 Wikipedia 上的数据,您可以在 Java 中创建映射。

也许您可以从几种颜色开始,并为未知颜色提供通用的十六进制表示,例如#rrggbb.

于 2011-04-23T12:46:21.540 回答
2

这是可运行的示例,

import java.awt.AWTException;
import java.awt.Color;
import java.awt.MouseInfo;
import java.awt.Point;
import java.awt.Robot;
public class Main {

public static String getHexString(int rgb) {
    String hexString = Integer.toHexString(rgb);
    hexString = hexString.length() > 1 ? hexString : "0" + hexString;
    return hexString;
}

public static void main(String[] a) throws AWTException {
    Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
    Color color = new Robot().getPixelColor(mouseLocation.x,
            mouseLocation.y);
    System.out.println(getHexString(color.getRed())
            + getHexString(color.getGreen())
            + getHexString(color.getBlue()));
}

}

于 2011-04-23T13:11:28.460 回答
1

选择:http ://rosettacode.org/wiki/Color_of_a_screen_pixel

有一个 Java/AWT 示例,AutoHotKey 是一个简单的脚本选项。

第二个 C 示例显示了您需要的 3 个 API 调用GetDC/GetCursorPos/GetPixel及其支持代码,这些可用于大多数为 windows 编译的语言。

于 2011-04-23T12:34:30.190 回答