java robot截图报错,如何以Java实现网页截图技术

如何以Java实现网页截图技术

今天看到某网友关于“如何以Java实现网页截图技术”的咨询帖,由于出现该咨询的地点非常不适合较长回复,故以博文形式回答。

事实上,如果您想以Java实现网页截图,也就是“输入一段网址,几秒钟过后就能截取一张网页缩略图”的效果。那么,您至少有3种方式可以选择。

1、最直接的方式——使用Robot

方法详解:该方法利用Robat提供的强大桌面操作能力,硬性调用浏览器打开指定网页,并将网页信息保存到本地。

优势:简单易用,不需要任何第三方插件。

缺点:不能同时处理大量数据,技术含量过低,属于应急型技巧。

实现方法:使用如下代码即可。

view plain

copy to clipboard

print

?

public

static

void

main(String[] args)

throws

MalformedURLException,

IOException, URISyntaxException, AWTException {

//此方法仅适用于JdK1.6及以上版本

Desktop.getDesktop().browse(

new

URL(

"http://google.com/intl/en/"

).toURI());

Robot robot = new

Robot();

robot.delay(10000

);

Dimension d = new

Dimension(Toolkit.getDefaultToolkit().getScreenSize());

int

width = (

int

) d.getWidth();

int

height = (

int

) d.getHeight();

//最大化浏览器

robot.keyRelease(KeyEvent.VK_F11);

robot.delay(2000

);

Image image = robot.createScreenCapture(new

Rectangle(

0

,

0

, width,

hei

相关文档:

一, package,import引入原因:

package:

我们都熟悉超市,超市虽然庞大,东西繁多,却管理的井井有条,很容易找到某样东东;,之所以能如此,一个重要的原因就是采用了分类放置,既方便了管理,又方便了寻找

Package也是一个分类放置东东的区域,不过它放的不是商品而是java中的类。Java中有各种各样的类,

内容丰 ......

1. super代表父类?代表父类的对象?还是代表父类的引用?为什么super()在构造方法,super.fun()在方法能用?个人认为应该是super表示对象才能这么调用,可父类对象没被new 而如果是表示父类的话,那fun()应该是static方法啊?迷茫~~ 有些东西可以称为定义,不要钻牛角尖 super();表示调用父类的构造方法,只是调用方法, ......

import java.awt.Dimension;

import java.awt.Rectangle;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.image.BufferedImage;

import javax.imageio.ImageIO;

import java.io.File;

public class captureScreen{

public captureScreen(String fileName) throws Exception

{

......

为了把学到知识总结起来,特开此文。主要是把每天学到的东西加以记录,不至于变成大狗熊。

20100310

今天在论坛看人发了两道java题,不错,把问题和答案都加进来,以便以后参考。

问题:

要求实现方法里面的代码:

1. function1()

返回相同闊度數字型字串. 例:

function1(“000000 ......

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 呢?Java Robot 可以通过访问屏幕截图实现桌面监控,你可以使用它的 createScreenCapture() 方法来获取当前屏幕的截图,然后你可以分析这些截图,比如查找特定的图形或者文字,以此来判断桌面上的变化。 ### 回答2: 要实现Java Robot桌面监控,可以按照以下步骤进行: 1. 首先,需要使用JavaRobot类,它是java.awt包中的一个工具类,可以模拟键盘和鼠标的操作。 2. 创建一个Robot类的实例,可以使用下面的代码进行实例化: `Robot robot = new Robot();` 3. 调用Robot类的方法来执行想要的操作,例如移动鼠标、点击键盘等。可以使用以下的代码来实现鼠标移动: ``` robot.mouseMove(x, y); ``` 其中,x和y是要移动到的坐标。还可以使用以下代码来实现鼠标点击: ``` robot.mousePress(MouseEvent.BUTTON1_MASK); robot.mouseRelease(MouseEvent.BUTTON1_MASK); ``` 该代码会模拟鼠标左键的点击操作。 4. 如果想要监控桌面的某个区域,可以使用Robot类的createScreenCapture方法来进行屏幕截图。以下是一个例子: ``` Rectangle screenRect = new Rectangle(x, y, width, height); BufferedImage capture = robot.createScreenCapture(screenRect); ``` 其中,x和y是要截图的起始坐标,width和height是截图的宽度和高度。 5. 可以将截图保存为文件,使用ImageIO类的write方法。以下是一个保存截图的例子: ``` ImageIO.write(capture, "png", new File("screenshot.png")); ``` 该代码会将截图保存为一个名为screenshot.png的PNG文件。 通过以上的步骤,就可以实现Java Robot桌面监控。可以根据具体需求,结合Robot类的其他方法和功能,进行更加复杂和精确的操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值