原理:截图+图片比较,调用第三方库实现全局热键

首先是截图部分

Dimension d = Toolkit.getDefaultToolkit().getScreenSize();BufferedImage screenshot = null;try {screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));} catch (AWTException e1) {e1.printStackTrace();}ByteArrayOutputStream f1=new ByteArrayOutputStream();try {ImageIO.write(screenshot, format_jpg, f1);Iterator<ImageReader> readers = ImageIO.getImageReadersByFormatName(format_jpg);ImageReader reader = readers.next();InputStream source = new ByteArrayInputStream(f1.toByteArray());ImageInputStream iis = ImageIO.createImageInputStream(source);reader.setInput(iis, true);ImageReadParam param = reader.getDefaultReadParam();ImageReadParam param2 = reader.getDefaultReadParam();//截取图片Rectangle rect1 = new Rectangle(computeRalitiveX(8), computeRalitiveY(192), computeRalitiveX(498), computeRalitiveY(448));Rectangle rect2 = new Rectangle(computeRalitiveX(517), computeRalitiveY(192), computeRalitiveX(498), computeRalitiveY(448));param.setSourceRegion(rect1);BufferedImage bi = reader.read(0, param);param2.setSourceRegion(rect2);BufferedImage bi2 = reader.read(0, param2);ByteArrayOutputStream p1 = new ByteArrayOutputStream();ImageIO.write(bi, format_jpg, p1);ByteArrayInputStream p1in = new ByteArrayInputStream(p1.toByteArray());panel.addImagePath(p1in);p1.close();p1in.close();ByteArrayOutputStream p2 = new ByteArrayOutputStream();ImageIO.write(bi2, format_jpg, p2);ByteArrayInputStream p2in = new ByteArrayInputStream(p2.toByteArray());p2.close();p2in.close();source.close();out.close();} catch (IOException e1) {e1.printStackTrace();}

然后是图片比较部分,也就是说在相同位置能否找到一样的颜色。

public static int isSameInRange(int img1_x, int img1_y, int x, int y, int r,BufferedImage bi, BufferedImage bi2) {int minX = x;int maxX = x + r;if (x + r > bi2.getWidth())maxX = bi2.getWidth();if (x - r < 0)minX = 0;int minY = y;int maxY = y + r;if (y + r > bi2.getHeight())maxY = bi2.getHeight();if (y - r < 0)minY = 0;int result = Integer.MAX_VALUE;for (int j = minY; j < maxY; j++) {for (int i = minX; i < maxX; i++) {byte r1 = (byte) (bi.getRGB(img1_x, img1_y) >> 24);byte g1 = (byte) (bi.getRGB(img1_x, img1_y) >> 16);byte b1 = (byte) (bi.getRGB(img1_x, img1_y) >> 8);byte gr1 = (byte) (bi.getRGB(img1_x, img1_y));byte r2 = (byte) (bi2.getRGB(i, j) >> 24);byte g2 = (byte) (bi2.getRGB(i, j) >> 16);byte b2 = (byte) (bi2.getRGB(i, j) >> 8);byte gr2 = (byte) (bi2.getRGB(i, j));int diff = Math.abs(r1 - r2) + Math.abs(g1 - g2)+ Math.abs(b1 - b2) + Math.abs(gr1 - gr2);result = result > diff ?diff : result;}}return result;}

好啦,最后是系统热键部分

String   OS   =   System.getProperty( "sun.arch.data.model") ;final PictureCompareWin own = this;Dimension d = Toolkit.getDefaultToolkit().getScreenSize();if(!OS.equals("64")){JIntellitype.setLibraryLocation("lib/JIntellitype.dll");}else{JIntellitype.setLibraryLocation("lib/JIntellitype64.dll");}if(JIntellitype.checkInstanceAlreadyRunning("QQ Picture Compare"))System.exit(1);if(JIntellitype.isJIntellitypeSupported()){JIntellitype.getInstance().registerHotKey(PRINT_SCREEN, 0,44);JIntellitype.getInstance().addHotKeyListener(new HotkeyListener(){public void onHotKey(int arg0) {if(arg0==PRINT_SCREEN){doCompare();}}});}

下面是演示效果

左边图像

右边图像


 显示不同(蓝色部分)

java 版qq美女找茬助手相关推荐

  1. 自己写的QQ美女找茬外挂

    这里首先说一下原理:利用截屏的 技术,讲当前QQ美女找茬的图片截屏下来,然后分析两幅图片相同位置的像素点,当两个点的差大于某个阀值时,将该点的颜色设置为红色. 下面根据 源码具体讲解:     1.首 ...

  2. 也谈QQ美女找茬外挂的编写

    不久前发表在首页的QQ美女找茬(外挂)学习笔记一文让我深受启发,我看了该文章后,也自己动手实现了一个外挂,效果挺不错的.请看截图: 从图中可以看出,我没有让结果显示在原游戏窗口中,而是显示在了外挂窗口 ...

  3. QQ美女找茬工具,大家测试一下,看看有没有问题

    h t t p s : / / p a n . b a i d u . c o m / s / 1 c 1 1 4 1 Z a 这是下载地址,在win7 32和win10 64位系统测试没问题.另外此 ...

  4. QQ游戏美女找茬外挂

    前段时间看到别人玩QQ游戏,美女来找茬,突然之间想到自己可以做个小外挂,自动比较两幅图,把不同之处标出来.软件自动化测试和开发简单的游戏外挂很相似.都是控制UI,然后模拟键盘和鼠标操作 思路: 1. ...

  5. 纯java版QQ源码下载

    纯java版QQ源码下载http://url.cn/7Mjy4P 郑重声明:(可先到华为网盘去看<java至尊QQ演示视频>) 因网盘不稳定,下载不了的话,请点击这里回贴留邮箱. 本人每天 ...

  6. Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】

    Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析 QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:http ...

  7. 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手

    蓝桥杯练习系统之基础训练Java版(2-26)-- 报时助手 **难度等级:普通****关键字:字符串 条件判断** 问题描述: 给定当前的时间,请用英文的读法将它读出来.时间用时h和分m表示,在英文 ...

  8. java版QQ 欢迎点评

    /*  * To change this template, choose Tools | Templates  * and open the template in the editor. 刚写的j ...

  9. java版QQ项目 源代码共享

    最近总有人联系我要java 版QQ源代码,当然你想学习,我不会拒绝给你,请拿到源代码的朋友,认真阅读一下,同时我想对要源代码的朋友提出几点要求,希望大家认真看一下: 1.我写的这个QQ虽然不是很完善, ...

最新文章

  1. ServiceStack.OrmLite使用
  2. Linux实战问题解决方案(1):Could not get lock
  3. DispatchAction
  4. 【网络教程】群晖修改 sn 和 MAC,生成器,cpolar内网穿透
  5. 体育计算机培训心得,体育培训心得体会(精选4篇)
  6. 算法:什么是棒球游戏问题?
  7. android audiorecorder有哪些功能,android AudioRecorder简单心得分享
  8. python界面设计
  9. python3今日头条App电商数据抓取
  10. Writing a Cause and Effect Essay
  11. 快速上手搜索引擎的秘密武器——Lucene
  12. 常用Android代码
  13. AsyncTask下载网络图片并显示下载进度
  14. 牛客网——MySQL数据库练习
  15. 面试之路(6)-BAT面试之操作系统内存详解
  16. 安全科普:使用Cookie会导致哪些安全问题?
  17. 基于OpenCVSharp的图像处理软件
  18. 老年黄斑退化疾病,能预防或减慢恶化吗?
  19. 物理机与虚拟机之间的文件互传
  20. weblogic 12c忘记密码

热门文章

  1. springboot打成Jar包下载Excel模板文件损坏问题
  2. HDU 1846 Brave Game(巴什博弈)
  3. 《花开半夏》--7 谢幕(2)
  4. 游戏盾是如何彻底解决游戏服务器被攻击问题
  5. python中tensorflow无法使用_完美解决安装完tensorflow后pip无法使用的问题
  6. Google Earth Engine(GEE)——利用updatemask进行纯NDVI和NDWI提取(以中国区域为例)
  7. Tabnine 和 Codota 选择对比
  8. 【5G之道】第十五章:动态TDD小基站增强
  9. 知识图谱存储与查询:自然语言记忆模块(NLM)
  10. Linux编程视频课程Shell从入门到精通(完整版)