`
yuebo
  • 浏览: 15836 次
社区版块
存档分类
最新评论

java 版qq美女找茬助手

    博客分类:
  • java
阅读更多

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

 

 

首先是截图部分

 

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();
					}
					
				}
			});
		}

下面是演示效果

左边图像

右边图像


 显示不同(蓝色部分)

  • 大小: 56.1 KB
  • 大小: 57.6 KB
  • 大小: 68.2 KB
分享到:
评论

相关推荐

    QQ美女找茬辅助工具源码

    QQ美女找茬是一款深受玩家喜爱的休闲游戏,而“QQ美女找茬辅助工具源码”则是针对这款游戏的辅助程序的源代码。这个辅助工具可能是为了帮助玩家在游戏中更快地找到不同之处,提高游戏体验。源码的开发环境是...

    java版QQ找茬测试版

    【Java版QQ找茬测试版】是一个利用编程技术实现的自动化辅助工具,旨在帮助玩家在游戏中自动识别并找出图片之间的差异。这款应用的核心功能是自动找茬,减轻了玩家手动寻找不同之处的压力,尤其是在时间限制下增加了...

    Java 实现QQ找茬游戏助手

    java编写的QQ连连助手。 运用多线程,比较两幅图片的区别

    QQ美女找茬辅助工具易语言源码

    QQ美女找茬辅助工具易语言源码 .版本 2 .支持库 spec .局部变量 游戏窗口, 矩形_ .局部变量 鼠标X坐标, 整数型 .局部变量 鼠标Y坐标, 整数型 .局部变量 热键, 整数型 画板1.高度 = 450 画板1.宽度 = 508 画板1....

    QQ美女找茬助手程序及源码(vc6)

    玩QQ美女找茬的时候主要看美女去了,找的很慢很慢,老是被虐,于是网上找了找相关资料写了这个小助手,主要是比较两副图片,然后在左侧显示出不同之处,在右边点出不同就可以了,源码和程序一并奉上,别笑话我就谢谢...

    VC实现QQ找茬助手

    【VC实现QQ找茬助手】是一款基于Visual C++(简称VC)编程环境开发的应用程序,其主要功能是协助用户在玩QQ找茬游戏时能够快速、准确地发现两张图片之间的差异,提高游戏体验和通关效率。QQ找茬游戏通常会展示两张...

    纯Java版QQ含源码和包.rar 下载后有Demo可以运行

    纯Java版QQ含源码和包.rar 下载后有Demo可以运行纯Java版QQ含源码和包.rar 下载后有Demo可以运行纯Java版QQ含源码和包.rar 下载后有Demo可以运行纯Java版QQ含源码和包.rar 下载后有Demo可以运行纯Java版QQ含源码和包...

    qq 同步助手JAVA

    qq 同步助手 JAVA 版本 社用于S40系统

    qq游戏大家来找茬全自动查找.zip

    QQ游戏“大家来找茬”是一款深受玩家喜爱的休闲益智游戏,它考验玩家的眼力和反应速度。在这款游戏中,玩家需要在两张看似相同的图片中找出细微的差别。"qq游戏大家来找茬全自动查找.zip"这个压缩包显然是为提高游戏...

    java版 qq 支持视频

    Java版QQ是一款基于Java编程语言开发的即时通讯软件,它主要实现了文字聊天、语音通话以及视频聊天等功能,为用户提供了一种跨平台的社交体验。在本文中,我们将深入探讨Java版QQ实现这些功能背后的技术原理和相关...

    java版QQ聊天室

    Java版QQ聊天室是一款基于Java编程语言实现的即时通讯应用,它模仿了QQ群的功能,让用户可以在一个虚拟的聊天环境中进行实时交流。这个项目利用了Java的多线程技术,确保了在高并发情况下的稳定性和性能。接下来,...

    QQ找茬辅助工具(程序+源码)

    QQ找茬辅助工具是一款专为QQ游戏中的"美女来找茬"和"大家来找茬"设计的软件,旨在帮助玩家在视觉识别上有困难时提供便利。该工具由作者自行编写,包含程序及其源代码,因此对编程爱好者来说,它不仅是一个实用的辅助...

    用JAVA SWING做的qq游戏大家来找茬的辅助程序.zip

    【标题】"用JAVA SWING做的qq游戏大家来找茬的辅助程序"是一个基于Java Swing开发的桌面应用程序,专为QQ游戏“大家来找茬”提供辅助功能。Swing是Java的标准库,用于创建图形用户界面(GUI),在本项目中被用来构建...

    “QQ找茬”游戏的识别小软件JAVA源码(netBeams项目)

    【QQ找茬游戏识别小软件】是一个基于JAVA编程语言的净荷项目,名为"netBeams"。这个项目的核心功能是实现对“QQ找茬”这款游戏的自动化识别,通过技术手段辅助玩家找到游戏中的差异之处。以下是该项目涉及的几个关键...

    Java版QQ(很好很强大)

    Java版QQ(很好很强大) Java版QQ(很好很强大) Java版QQ(很好很强大)

    java版qq源码

    【Java版QQ源码解析】 Java版QQ是一个基于Java Swing技术开发的仿QQ聊天工具,它巧妙地利用了Java的图形用户界面库Swing来构建交互式的聊天界面,并结合Socket编程实现了客户端与服务器之间的实时通信。这个项目...

    手机QQ 2008 java版

    手机QQ 2008 java版。。。。。。。。。。。。。。。。。。。。。 手机QQ 2008 java版手机QQ 2008 java版

    JAVA版的QQ欢乐斗地主!

    JAVA版的欢乐斗地主哦!240*320亲测可用!

    Java 版仿QQ

    【Java版仿QQ】是一个基于Java技术实现的简易聊天应用程序,它综合运用了Java的多线程、IO流、网络编程、图形用户界面(GUI)以及集合等核心知识。这个项目旨在提供一个基础的在线聊天环境,支持一对一的单独聊天和...

Global site tag (gtag.js) - Google Analytics