我正在尝试制作一个应用程序来显示我的鼠标指向的颜色,我不是指在我自己的应用程序中,而是在任何屏幕上的窗口中的任何位置,有点像我的鼠标指针旁边的一个标签,它显示了确切的颜色。
我是一名 Java 开发人员,但我不认为这可以在 java 中完成我想也许我需要某种脚本,但我不知道任何帮助会真正得到应用
我正在尝试制作一个应用程序来显示我的鼠标指向的颜色,我不是指在我自己的应用程序中,而是在任何屏幕上的窗口中的任何位置,有点像我的鼠标指针旁边的一个标签,它显示了确切的颜色。
我是一名 Java 开发人员,但我不认为这可以在 java 中完成我想也许我需要某种脚本,但我不知道任何帮助会真正得到应用
解决方案由两部分组成:
第 1 部分:检索颜色:
Point mouseLocation = MouseInfo.getPointerInfo().getLocation();
Color color = new Robot().getPixelColor(mouseLocation.x, mouseLocation.y);
第 2 部分:获取颜色名称:
您可以从Wikipedia 的颜色列表中获得许多颜色及其名称的列表。给定 Wikipedia 上的数据,您可以在 Java 中创建映射。
也许您可以从几种颜色开始,并为未知颜色提供通用的十六进制表示,例如#rrggbb
.
这是可运行的示例,
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()));
}
}
选择:http ://rosettacode.org/wiki/Color_of_a_screen_pixel
有一个 Java/AWT 示例,AutoHotKey 是一个简单的脚本选项。
第二个 C 示例显示了您需要的 3 个 API 调用GetDC/GetCursorPos/GetPixel
及其支持代码,这些可用于大多数为 windows 编译的语言。