java 版qq美女找茬助手
原理:截图+图片比较,调用第三方库实现全局热键
首先是截图部分
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美女找茬助手相关推荐
- 自己写的QQ美女找茬外挂
这里首先说一下原理:利用截屏的 技术,讲当前QQ美女找茬的图片截屏下来,然后分析两幅图片相同位置的像素点,当两个点的差大于某个阀值时,将该点的颜色设置为红色. 下面根据 源码具体讲解: 1.首 ...
- 也谈QQ美女找茬外挂的编写
不久前发表在首页的QQ美女找茬(外挂)学习笔记一文让我深受启发,我看了该文章后,也自己动手实现了一个外挂,效果挺不错的.请看截图: 从图中可以看出,我没有让结果显示在原游戏窗口中,而是显示在了外挂窗口 ...
- 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位系统测试没问题.另外此 ...
- QQ游戏美女找茬外挂
前段时间看到别人玩QQ游戏,美女来找茬,突然之间想到自己可以做个小外挂,自动比较两幅图,把不同之处标出来.软件自动化测试和开发简单的游戏外挂很相似.都是控制UI,然后模拟键盘和鼠标操作 思路: 1. ...
- 纯java版QQ源码下载
纯java版QQ源码下载http://url.cn/7Mjy4P 郑重声明:(可先到华为网盘去看<java至尊QQ演示视频>) 因网盘不稳定,下载不了的话,请点击这里回贴留邮箱. 本人每天 ...
- Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据流程分析【转】
Java版 QQ空间自动登录无需拷贝cookie一天抓取30WQQ说说数据&流程分析 QQ空间说说抓取难度比较大,花了一个星期才研究清楚! 代码请移步到GitHub GitHub地址:http ...
- 蓝桥杯练习系统之基础训练Java版(2-26)—— 报时助手
蓝桥杯练习系统之基础训练Java版(2-26)-- 报时助手 **难度等级:普通****关键字:字符串 条件判断** 问题描述: 给定当前的时间,请用英文的读法将它读出来.时间用时h和分m表示,在英文 ...
- java版QQ 欢迎点评
/* * To change this template, choose Tools | Templates * and open the template in the editor. 刚写的j ...
- java版QQ项目 源代码共享
最近总有人联系我要java 版QQ源代码,当然你想学习,我不会拒绝给你,请拿到源代码的朋友,认真阅读一下,同时我想对要源代码的朋友提出几点要求,希望大家认真看一下: 1.我写的这个QQ虽然不是很完善, ...
最新文章
- ServiceStack.OrmLite使用
- Linux实战问题解决方案(1):Could not get lock
- DispatchAction
- 【网络教程】群晖修改 sn 和 MAC,生成器,cpolar内网穿透
- 体育计算机培训心得,体育培训心得体会(精选4篇)
- 算法:什么是棒球游戏问题?
- android audiorecorder有哪些功能,android AudioRecorder简单心得分享
- python界面设计
- python3今日头条App电商数据抓取
- Writing a Cause and Effect Essay
- 快速上手搜索引擎的秘密武器——Lucene
- 常用Android代码
- AsyncTask下载网络图片并显示下载进度
- 牛客网——MySQL数据库练习
- 面试之路(6)-BAT面试之操作系统内存详解
- 安全科普:使用Cookie会导致哪些安全问题?
- 基于OpenCVSharp的图像处理软件
- 老年黄斑退化疾病,能预防或减慢恶化吗?
- 物理机与虚拟机之间的文件互传
- weblogic 12c忘记密码
热门文章
- springboot打成Jar包下载Excel模板文件损坏问题
- HDU 1846 Brave Game(巴什博弈)
- 《花开半夏》--7 谢幕(2)
- 游戏盾是如何彻底解决游戏服务器被攻击问题
- python中tensorflow无法使用_完美解决安装完tensorflow后pip无法使用的问题
- Google Earth Engine(GEE)——利用updatemask进行纯NDVI和NDWI提取(以中国区域为例)
- Tabnine 和 Codota 选择对比
- 【5G之道】第十五章:动态TDD小基站增强
- 知识图谱存储与查询:自然语言记忆模块(NLM)
- Linux编程视频课程Shell从入门到精通(完整版)