JAVA实现自动打开URL对应的网页并保存为图片-不借助第三方API
2016-07-29 00:00
501 查看
基本原理:
JDK6u10版本以上提供了DeskTop的API接口支持,可以根据URI参数自动打开
操作系统默认的浏览器来加载对应的网页,同时借助JDK的Robot类实现自动截屏
这样就完成了对任意一个URL对应网页保存为图片。程序如下:
缺点:
程序运行时用户不能有其它操作,否则可能保存错误截屏。 这里
假设加载一个网页时间最长为8秒.
转载请注明出自gloomyfish
JDK6u10版本以上提供了DeskTop的API接口支持,可以根据URI参数自动打开
操作系统默认的浏览器来加载对应的网页,同时借助JDK的Robot类实现自动截屏
这样就完成了对任意一个URL对应网页保存为图片。程序如下:
package com.gloomyfish.image.util; import java.awt.AWTException; import java.awt.Rectangle; import java.awt.Robot; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.net.URI; import javax.imageio.ImageIO; public class DeskTopTest { public static void main(String[] args) { if (!java.awt.Desktop.isDesktopSupported()) { System.err.println("Desktop is not supported (fatal)"); System.exit(1); } java.awt.Desktop desktop = java.awt.Desktop.getDesktop(); if (!desktop.isSupported(java.awt.Desktop.Action.BROWSE)) { System.err.println("Desktop doesn't support the browse action (fatal)"); System.exit(1); } try { URI uri = URI.create("http://www.csdn.net"); desktop.browse(uri); Thread.sleep(8000); // 8 seconds is enough to load the any page. Robot robot = new Robot(); // Rectangle rectangle = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize() ); Rectangle rectangle = new Rectangle(300, 90, 1000, 720); BufferedImage image = robot.createScreenCapture(rectangle); File outputfile = new File("D:\\agriculture\\test.jpg"); ImageIO.write(image, "jpg", outputfile); } catch (IOException e) { e.printStackTrace(); } catch (AWTException e) { e.printStackTrace(); } catch (InterruptedException e) { e.printStackTrace(); } } }
缺点:
程序运行时用户不能有其它操作,否则可能保存错误截屏。 这里
假设加载一个网页时间最长为8秒.
转载请注明出自gloomyfish
相关文章推荐
- Java JPA快速入门介绍
- Java Swing 层次面板(JLayeredPanel) Demo
- JAVA Swing自定义JScorllPanel
- Java Swing模拟水波纹扩散效果动画
- Java语言中反射动态代理接口的解释与演示
- 演讲预告:Why Java Sucks and C# Rocks
- Why Java Sucks and C# Rocks(1):比较的意义与目的
- Why Java Sucks and C# Rocks(2):基础类型与对象
- 浅谈Java 7的闭包与Lambda表达式之优劣
- Why Java Sucks and C# Rocks(3):Attribute与Annotation
- 阐述JavaSE中获取properties资源文件的多种方式
- Java Mail最基本的发送邮件例子
- struts-2.3.1+spring-framework-3.2.2+hibernate-4.1.1整合历程<第三部分>(详解)
- Java实现的AES加解密程序
- 玩转Java对象和XML相互转换
- 一起学Maven(eclipse项目构建)<二>
- MyEclipse10 SVN 插件安装
- struts-2.3.1+spring-framework-3.2.2+hibernate-4.1.1整合历程<第一部分>(详解)
- struts-2.3.1+spring-framework-3.2.2+hibernate-4.1.1整合历程<第二部分>(详解)
- eclipse启动不起来,eclipse.ini配置问题(支持大内存64bit问题)