- 浏览: 916349 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (498)
- J2EE (52)
- 数据库 (17)
- java基础 (43)
- web技术 (19)
- 程序设计 (6)
- 操作系统 (18)
- IT资讯 (7)
- 我的IT生活 (12)
- 学习笔记 (9)
- Jquery (25)
- JavaScript (18)
- spring (40)
- Hibernate (12)
- Struts (10)
- YUI (2)
- Extjs (22)
- .net (0)
- Eclipse (10)
- 社会主义 (2)
- 服务器 (9)
- CSS (8)
- 网络安全 (16)
- 版本控制 (9)
- PHP (2)
- Oracle (42)
- SQL server (1)
- Mysql (11)
- 项目管理 (3)
- 开发工具使用 (10)
- SQL语句 (7)
- Perl (0)
- Shell (6)
- 漏洞 (4)
- ibatis (5)
- hacker (2)
- SQL注入 (6)
- Hacker工具 (2)
- 入侵和渗透 (7)
- 插件/组件 (2)
- 最爱开源 (5)
- 常用软件 (2)
- DOS (1)
- HTML (2)
- Android (9)
- CMS (1)
- portal (8)
- Linux (7)
- OSGI (1)
- Mina (5)
- maven (2)
- hadoop (7)
- twitter storm (2)
- sap hana (0)
- OAuth (0)
- RESTful (1)
- Nginx (4)
- flex (1)
- Dubbo (1)
- redis (1)
- springMVC (1)
- node.js (1)
- solr (2)
- Flume (1)
- MongoDB (2)
- ElasticSearch (1)
最新评论
-
M_drm:
请问要怎么设置浏览器才不报没权限呢?
用JS在页面调用本地可执行文件的方法(ACTIVEX) -
Alexniver:
官方文档。When importing data into I ...
mysql导入数据过慢 解决方法 -
camelwoo:
我记得 Criteria 可以做连接查询与子查询,也可以做分页 ...
Hibernate总结篇二 -
zhenglongfei:
楼主如果SubKeyName 这个节点不存在,怎么办??怎么用 ...
Java操作注册表 -
yxx676229549:
用log4j 2 了
logback
主要使用的是java.util.Robot类来捕获屏幕,可以实现对屏幕一个矩形区域的捕获,通过这个类,我们也可以实现一个远程桌面控制的程序。
package com.qiu.util; import java.io.*; import java.net.*; import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.awt.image.*; import javax.imageio.*; import java.io.*; /**@Author Qiu_BaiChao *一个简单的屏幕抓图 * **/ public class ScreenCapture { //test main public static void main(String[] args) throws Exception{ String userdir = System.getProperty("user.dir"); File tempFile = new File("d:","temp.png"); ScreenCapture capture = ScreenCapture.getInstance(); capture.captureImage(); JFrame frame = new JFrame(); JPanel panel = new JPanel(); panel.setLayout(new BorderLayout()); JLabel imagebox = new JLabel(); panel.add(BorderLayout.CENTER,imagebox); imagebox.setIcon(capture.getPickedIcon()); capture.saveToFile(tempFile); capture.captureImage(); imagebox.setIcon(capture.getPickedIcon()); frame.setContentPane(panel); frame.setSize(400,300); frame.show(); System.out.println("Over"); } private ScreenCapture() { try{ robot = new Robot(); } catch(AWTException e) { System.err.println("Internal Error: " + e); e.printStackTrace(); } JPanel cp = (JPanel)dialog.getContentPane(); cp.setLayout(new BorderLayout()); labFullScreenImage.addMouseListener(new MouseAdapter() { public void mouseReleased(MouseEvent evn) { isFirstPoint = true; pickedImage = fullScreenImage.getSubimage(recX,recY,recW,recH); dialog.setVisible(false); } }); labFullScreenImage.addMouseMotionListener(new MouseMotionAdapter() { public void mouseDragged(MouseEvent evn) { if(isFirstPoint) { x1 = evn.getX(); y1 = evn.getY(); isFirstPoint = false; } else { x2 = evn.getX(); y2 = evn.getY(); int maxX = Math.max(x1,x2); int maxY = Math.max(y1,y2); int minX = Math.min(x1,x2); int minY = Math.min(y1,y2); recX = minX; recY = minY; recW = maxX-minX; recH = maxY-minY; labFullScreenImage.drawRectangle(recX,recY,recW,recH); } } public void mouseMoved(MouseEvent e) { labFullScreenImage.drawCross(e.getX(),e.getY()); } }); cp.add(BorderLayout.CENTER,labFullScreenImage); dialog.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR)); dialog.setAlwaysOnTop(true); dialog.setMaximumSize( Toolkit.getDefaultToolkit().getScreenSize()); dialog.setUndecorated(true); dialog.setSize(dialog.getMaximumSize()); dialog.setModal(true); } //Singleton Pattern public static ScreenCapture getInstance() { return defaultCapturer; } /**捕捉全屏慕*/ public Icon captureFullScreen() { fullScreenImage = robot.createScreenCapture(new Rectangle( Toolkit.getDefaultToolkit().getScreenSize())); ImageIcon icon = new ImageIcon(fullScreenImage); return icon; } /**捕捉屏幕的一个矫形区域 */ public void captureImage() { fullScreenImage = robot.createScreenCapture(new Rectangle( Toolkit.getDefaultToolkit().getScreenSize())); ImageIcon icon = new ImageIcon(fullScreenImage); labFullScreenImage.setIcon(icon); dialog.setVisible(true); } /**得到捕捉后的BufferedImage*/ public BufferedImage getPickedImage() { return pickedImage; } /**得到捕捉后的Icon*/ public ImageIcon getPickedIcon() { return new ImageIcon(getPickedImage()); } /**储存为一个文件,为PNG格式 *@deprecated *replaced by saveAsPNG(File file) **/ @Deprecated public void saveToFile(File file) throws IOException{ ImageIO.write(getPickedImage(),defaultImageFormater,file); } /**储存为一个文件,为PNG格式*/ public void saveAsPNG(File file) throws IOException { ImageIO.write(getPickedImage(),"png",file); } /**储存为一个JPEG格式图像文件*/ public void saveAsJPEG(File file) throws IOException { ImageIO.write(getPickedImage(),"JPEG",file); } /**写入一个OutputStream*/ public void write(OutputStream out) throws IOException{ ImageIO.write(getPickedImage(),defaultImageFormater,out); } //singleton design pattern private static ScreenCapture defaultCapturer = new ScreenCapture(); private int x1,y1,x2,y2; private int recX,recY,recH,recW; //截取的图像 private boolean isFirstPoint = true; private BackgroundImage labFullScreenImage = new BackgroundImage(); private Robot robot; private BufferedImage fullScreenImage; private BufferedImage pickedImage; private String defaultImageFormater = "png"; private JDialog dialog = new JDialog(); } /**显示图片的Label*/ class BackgroundImage extends JLabel{ public void paintComponent(Graphics g) { super.paintComponent(g); g.drawRect(x,y,w,h); String area = Integer.toString(w)+" * "+ Integer.toString(h); g.drawString(area,x+(int)w/2-15,y+(int)h/2); g.drawLine(lineX,0,lineX,getHeight()); g.drawLine(0,lineY,getWidth(),lineY); } public void drawRectangle(int x,int y,int width,int height) { this.x = x; this.y = y; h = height; w = width; repaint(); } public void drawCross(int x,int y) { lineX = x; lineY = y; repaint(); } int lineX,lineY; int x,y,h,w; }
http://www.hackbase.com/tech/2010-08-03/60958_2.html
发表评论
-
使用Java调用百度、google搜索
2013-10-20 21:49 1492使用Java调用百度搜索 http://yangshangch ... -
PHP+JSON+瀑布流模式+三种风格+无限拖拽方式
2013-03-01 12:37 993http://guangqiang.iteye.com/blo ... -
openOffice 把word转换成html
2013-03-01 12:30 1181[url]http://jadethao.iteye.com/ ... -
Web开发的第一课 - License
2013-01-20 13:13 1233http://fogtower.iteye.com/blog/ ... -
nginx负载resin,实现session共享-JVM_ROUTE
2012-12-24 09:23 1711NGINX负载配置: upstream bac ... -
使用EhCache和Spring AOP实现计算结果缓存
2012-08-07 10:47 1061原文:http://kim-miao.iteye.com/bl ... -
Tomcat6.0控制台配置
2012-08-02 18:01 1448原文网址:http://apps.hi.baidu.com/s ... -
汉字/英文字符长度判断--JS版与Java方法版
2012-07-18 17:54 2104http://www.blogjava.net/loyalgl ... -
用java流方式判断文件类型
2012-06-28 09:50 1758原文:http://rainsilence.iteye.com ... -
Web开发中需要了解的东西
2012-01-02 23:17 1160来自:http://coolshell.cn/ar ... -
Webservice调用方式:axis,soap详解
2011-11-29 12:41 1545转自:[url] http://blog.csdn.net/b ... -
Cookie与会话--Session与SSO的实现细节研究
2011-10-11 00:12 12570.背景 最近 ... -
常用默认端口号
2010-10-14 08:44 2216网络层---数据包的包格 ... -
配置welcome-file-list跳转
2010-10-13 16:23 1245web.xml里是 <welcome-file> ... -
java自动生成验证码插件-kaptcha
2010-09-14 01:03 1982今天无意间发现了一个很好用的验证码插件,java版的,很不错的 ... -
JSTL的使用
2010-04-29 10:15 2094JSTL是什么 JSTL(JSP Standard Tag L ... -
EL表达式的用法小结
2010-04-29 10:08 20031.语法结构 ${express ... -
使用JSON的方法(转)
2010-04-12 15:47 1080JSON 即 JavaScript Object Natati ...
相关推荐
远程桌面控制和屏幕抓图是IT领域中两个重要的技术,它们在系统管理、技术支持和协作等方面发挥着关键作用。SreenServer,作为一个这样的工具,它提供了远程访问和屏幕捕获的功能,使得用户能够轻松地从一个地方操控...
根据给定的文件信息,我们可以总结出以下关于使用Java实现屏幕截图的重要知识点: ### Java屏幕抓图技术概览 在Java中,实现屏幕抓图主要依赖于`java.awt.Robot`类,它提供了屏幕捕获的功能。通过创建`Robot`实例...
在Java编程语言中,实现屏幕抓图功能是一项常见的任务,特别是在开发桌面应用或者需要进行自动化测试时。这个项目提供了一段源码,模仿了QQ截图的功能,允许用户通过拖动鼠标来选择屏幕上的任何区域进行截图,并且...
在IT领域,远程桌面控制和屏幕抓图是两个非常重要的技术。VC++,全称Visual C++,是Microsoft开发的一款强大的C++编程环境,广泛用于创建桌面应用、系统级工具和游戏等。在这个"VC++ 远程桌面控制、抓图源程序"中,...
压缩包中的"ScreenCapture"可能是一个Java源文件,包含了实现屏幕抓图功能的主要代码。通常,它会包含一个主类,其中包含创建Robot对象、截取屏幕并保存或显示截图的逻辑。 8. **学习与实践**: 对于初学者来说,...
那么我们如何用VB实现屏幕抓图呢?本资源包含的源程序代码将为您解答。 本资源压缩包内包含实现此功能的所有代码(不含控件),简单修改即可适应您的要求。 本实例不仅有抓图功能,而且支持将抓取的...
本文将深入探讨使用VC(Visual C++)进行远程桌面控制和屏幕抓图的源码实现。 首先,VC++是Microsoft开发的一款集成开发环境(IDE),它基于C++编程语言,支持创建Windows应用程序。在远程桌面控制方面,VC++可以...
在本文中,我们将深入探讨如何使用Microsoft Foundation Class (MFC) 库来实现屏幕抓图功能,这对于初学者来说极具价值。MFC是Microsoft提供的一种C++类库,它简化了Windows应用程序的开发,提供了丰富的控件和API...
【标题】:“抓图程序 JAVA版 用JAVA写的抓图程序” 这个项目是基于Java语言开发的一款抓图工具,主要用于从网页中批量抓取图片并保存到本地形成一个文件夹。在网页抓取领域,这样的工具非常实用,尤其是在处理包含...
在Windows Forms(Winform)应用开发中,有时我们需要实现屏幕抓图功能,比如为了记录用户操作、创建教学视频或者进行自动化测试。这个压缩包“Winform中实现屏幕抓图示例代码.zip”提供了在Winform环境下实现屏幕...
总的来说,通过VC++实现远程桌面控制和屏幕抓图涉及到Windows API的使用,网络编程,以及图形处理技术。理解这些知识点,开发者可以创建出强大的系统管理和支持工具。而带有详细注释的源代码是学习和实践这些技术的...
在本项目中,VC++被用作编写远程桌面控制和屏幕抓图软件的工具。 远程桌面控制允许用户通过网络远程操作另一台计算机,实现如同坐在那台计算机前一样的控制体验。这种功能的核心是网络通信技术,通常采用TCP/IP协议...
在这个屏幕抓图程序中,开发者可能利用了Windows API中的相关函数,比如`GetWindowDC`和`GetDesktopWindow`来获取屏幕或窗口的设备上下文(Device Context),然后调用`BitBlt`或`StretchBlt`进行位图复制,实现屏幕...
在屏幕抓图中,我们需要利用`java.awt.Robot`类,它能够模拟用户的键盘和鼠标操作,包括捕获屏幕图像。以下是一个简单的屏幕抓图示例: ```java import java.awt.*; import java.io.*; public class Screenshot { ...
在本文中,我们将深入探讨如何使用C#编程语言来实现屏幕抓图功能,这将对初学者理解Windows绘图原理非常有帮助。首先,我们来看看标题"屏幕抓图.zip",这表明我们要讨论的是一个与捕获计算机屏幕图像相关的项目。在...
在本文中,我们将深入探讨如何使用C#编程语言来实现屏幕抓图功能。这个主题源自一个名为"C#实现屏幕抓图工程文件源代码"的项目,该项目包含了一个可运行的工程文件,适用于Visual Studio 2008开发环境。源代码可用于...
本文将详细介绍如何使用纯代码的方式在C#中实现屏幕抓图的功能。 #### 二、关键技术点解析 ##### 2.1 关键技术介绍 在C#中实现屏幕抓图主要依赖于以下关键技术: - **GDI+(Graphics Device Interface Plus)**...
VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图VisualC 实效编程 23 屏幕抓图...
在本文中,我们将深入探讨如何在VB中实现屏幕抓图功能,以及相关的技术细节。 首先,我们需要理解屏幕抓图的基本原理。在Windows操作系统中,屏幕图像本质上是一块内存区域,称为设备上下文(Device Context,DC)...