首先关闭代码:
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&lt; ----这是问题
255 255 255
据我所知,屏幕是静态的,但是robot.getPixelColor(x,y)方法返回了一组错误的值。
有没有人对此有任何经验或直觉?有什么我可以做的,以防止它发生?
由于
答案 0 :(得分:1)
出于显而易见的原因;你的逻辑有问题。这是一个想法:
假设您有一个宽度为200px的屏幕,假设您的算法检查屏幕边界之外的像素的颜色(即201,0)。 robot.getPixelColor返回什么?它会返回图像边界之外的颜色或返回某种无效结果。
使用siad,确保算法检查图像约束内的有效像素;这可能是导致结果模糊的原因。
希望这有助于或导致合适的解决方案