【发布时间】:2011-01-02 11:06:24
【问题描述】:
首先关闭代码:
for (int i = 0; i < 25; i++)
{
robot.delay(1000);// wait 1 second
Color pixel_4 = robot.getPixelColor(x-15, 30);
System.out.println(pixel_4.getRed() + " " + pixel_4.getGreen() + " " + pixel_4.getBlue());
}
这不是我使用的确切代码,但它会产生相同的情况: 如果我在程序中运行这个循环并且整个循环的屏幕完全相同,它偶尔会输出如下内容:
255 255 255
...(相同颜色)
...
...
...
...
...
...
...
124 142 012
255 255 255
据我所知,屏幕是静态的,但 robot.getPixelColor(x,y) 方法返回了一组错误的值。
有没有人对此有任何经验或直觉?我能做些什么来防止它发生吗?
谢谢
【问题讨论】:
-
危险 MK!危险! (还有 java.awt.Robot 是一个便于非常基本的 GUI 测试或自动化 GUI 交互的类)。
-
我在一个项目中使用 Robot 类来捕获多个屏幕截图,旨在帮助最终用户选择一个屏幕区域来获取动画屏幕截图。这个想法是让用户在感兴趣的对象被最小化时截取屏幕截图,并在它可见时截取另一张截图。然后通过两幅图像的比较来预测感兴趣的区域。它按预期工作。换一种说法。我认为您的代码或逻辑是错误的-并且 sn-p 不足以说明出了什么问题。我建议先使用静态图像进行测试,然后将其设为 SSCCE。
-
我刚刚尝试了代码,没有问题,但我硬编码了 x/y 值。你的“x”值有没有可能改变?
-
@Andrew Thompson:我不确定 SSCCE 是什么,但我必须仔细检查以确保我的图像是静态的。
-
@camickr:我相当肯定 x 值保持不变,但我也会仔细检查。谢谢!