之前用按键精灵写过一些游戏辅助,里面有个函数叫,就上在屏幕范围查找给定的一张图片,返回查找到的坐标位置。
现在,Java来实现这个函数类似的功能。
算法描述:
屏幕截图,得到图Ajava查找算法,(查找的目标图片为图B);
遍历图A的像素点,根据图B的尺寸,得到图B四个角映射到图A上的四个点;
得到的四个点与图B的四个角像素点的值比较。如果四个点一样java查找算法,执行步骤4;否则,回到步骤2继续;
进一步对比,将映射范围内的全部点与图B全部的点比较。如果全部一样,则说明图片已找到;否则,回到步骤2继续;
这里,像素之间的比较是通过对象获取每个像素的RGB值来比较的。如下,将转换为int二维数组:
1 /**
2 * 根据获取图片RGB数组
3 * @param
4 * @
5 */
6 int[][] ( ) {
7 int width = .();
8 int = .();
9 int[][] = new int[][width];
10 for (int h = 0; h < ; h++) {
11 for (int w = 0; w < width; w++) {
12 //使用(w, h)获取该点的颜色值是ARGB,而在实际应用中使用的是RGB,所以需要将ARGB转化成RGB,即.(w, h) & 。
13 h = .(w, h) & ;
14 }
15 }
16 ;
17 }
比较两个像素点的RGB值是否相同java查找算法-Java图片上查找图片算法,是通过异或操作比较的(据说比==效率更高),如果异或操作后得到的值为0,说明两个像素点的RGB一样,否则不一样。
21/212>
21天更文挑战,赢取价值500元大礼,还有机会成为签约作者!