找茬游戏
最近在整理硬盘时,看到了几年前写的 美女找茬工具,一时兴起看下现在是否能用,试了下,完全用不了了,界面和以前的界面一样啊,图片的偏移应该没有变,按道理应该能用,猜想可能是图片做了处理。就花了点时间看了下,果然发现了问题,现在和大家分享下。
原理
找茬游戏是给出两种图片,图片中只有几处地方不同,快速找到不同地方的游戏。原理是通过程序拿到两种图片,然后逐像素对比来找到不同地方。
图片获取
- hMainWnd = ::FindWindow(NULL, L”大家来找茬”)); // 拿到找茬的窗口handle,是需要管理员权限
- hDC = GetDC(hMainWnd); // 获取找茬的Device Context
- BitBlt(desDC, desX, desY, width, height, srcDC, srcX, srcY, SRCCOPY); // 该函数是从hDC上从(srcX, srcY)拷贝[width, height]像素到desDC中(desX, desY)指定的位置
一些细节上的东西,可能更需要时间,如找图片的偏移地址,我可以采用的方法是:截图,然后用系统自带的图片编辑器放大来看。
图片对比
此时已经拿到两种图片,就需要对像素进行对比,若相同不处理,若不同则将该像素设置为红色,这样方便我们看到不同的地方。
for (