是否有适用于Android的程序可以在屏幕上检测到pixel color
并对该x,y坐标进行点击事件?
检测某些区域的颜色并获取该像素坐标(如果程序不存在)的最佳算法是什么?
这个程序的和平检测400x400像素区域的颜色:
//Set aim color
var rgb = 197137164;
//Init x,y pixels
var x = 0;
var y = 0;
var ex = 0;
:myloop
for(x; x<400; x++)
{
for(y;y<400;y++)
{
if(getcolor(x,y) == rgb)
{
RaiseEvent(x,y);
set ex = 1;
break;
}
if(ex == 1){break;}
}
}
sleep(10000);
set x = 0;
set y = 0;
set ex = 0;
goto myloop;
但我猜这个算法工作得很慢。我需要优化这个算法,但是现在我不知道怎么做。有任何想法吗?或者任何程序已经存在,我不需要创建自行车?
答案 0 :(得分:0)
编辑: 尝试不逐个获取每个像素,而是使用getpixels()方法,并迭代像素数组,它实际上要快一些像素。
所以当你得到那个一维像素数组时,你可以迭代它。
假设您有400x200像素(80000)。因此,您使用for循环迭代像素,并检查像素的颜色是否与您搜索的颜色匹配。 像这样:
var coordinate;
for(int i=0; i<pixels.length;i++){
if(pixel[i] == yourcolor){
coordinate=i;
break;
}
}
var coordX = coordinate%400; //coordinate X = which column
var coordY = coordinate/200; //coordinate Y = which row
因此,如果匹配像素是第400个,则它将是第二行中的第一个像素(因为索引是从0 - > 0-399 =第一行,400-799 =第二行,依此类推)。 / p>
上一个假设:
我认为它很慢,因为它睡眠时间为10000毫秒,删除该命令。
sleep(10000);
另外我建议不要将多个命令放在一行中。