找茬游戏

本文介绍了找茬游戏的原理,通过程序获取并对比图片,寻找不同之处。利用BitBlt函数抓取图片,逐像素对比找出差异,并提供了一个简单的工具界面。文章还讨论了优化空间,如改进颜色对比策略,并分享了源码链接。
摘要由CSDN通过智能技术生成

找茬游戏

最近在整理硬盘时,看到了几年前写的 美女找茬工具,一时兴起看下现在是否能用,试了下,完全用不了了,界面和以前的界面一样啊,图片的偏移应该没有变,按道理应该能用,猜想可能是图片做了处理。就花了点时间看了下,果然发现了问题,现在和大家分享下。

原理

找茬游戏是给出两种图片,图片中只有几处地方不同,快速找到不同地方的游戏。原理是通过程序拿到两种图片,然后逐像素对比来找到不同地方。

图片获取

  1. hMainWnd = ::FindWindow(NULL, L”大家来找茬”)); // 拿到找茬的窗口handle,是需要管理员权限
  2. hDC = GetDC(hMainWnd); // 获取找茬的Device Context
  3. BitBlt(desDC, desX, desY, width, height, srcDC, srcX, srcY, SRCCOPY); // 该函数是从hDC上从(srcX, srcY)拷贝[width, height]像素到desDC中(desX, desY)指定的位置

一些细节上的东西,可能更需要时间,如找图片的偏移地址,我可以采用的方法是:截图,然后用系统自带的图片编辑器放大来看。

图片对比

此时已经拿到两种图片,就需要对像素进行对比,若相同不处理,若不同则将该像素设置为红色,这样方便我们看到不同的地方。

for (
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值