写了个类似按键精灵的找图类。方便大家做UI测试的时候可以用
浏览(4527).NET在Delphi源码有个叫BitmapData的一个找图找色组件性能非常好效果也很给力.一直想用C#实现但是最初实现的性能实在太糟糕了. 找个图片基本都是6 秒以上. 后来经过自己改进开unsafe 用指针后速度有了比较大的提升基本满足了做模拟外挂或者做UI测试的时候图像判断。现在公布出来给大家参考下 如果有更好的性能提升优化请在讨论下面留言 不胜感激。
目前只支持 24位的bmp 其他的就不支持了 源码在下面有时间可以自己改下 我机器配置如下:e31230 8G 找图片 在 1980 1080的图找 20*20的图片没设置背景透明色的情况下 100ms以内 算是满足做找图需求了。
使用如下:
//定义色差范围值
BGR bgr = new BGR();
bgr.B = 1;
BitmapDataFinder big = new BitmapDataFinder("C:\\b.bmp");
big.Name = "母图";
BitmapDataFinder targ = new BitmapDataFinder("C:\\a1.bmp");
targ.Name = "子图";
可以对图片设置背景色.有时候子图 是有透明的地方的,这里用到 BackColor 设置一个颜色为透明色 颜色类型为BGR
targ.BackColor=;
Stopwatch watch = new Stopwatch();
int x = 0, y = 0;
watch.Start();
bool b = big.Find(targ, bgr, ref x, ref y);
watch.Stop();
MessageBox.Show(watch.ElapsedMilliseconds.ToString() + " " + x.ToString() + "," + y.ToString());