2024年3月11日发(作者:)
如何以Java实现网页截图技术 - 【Java究竟怎么玩?】 - CSDN博客
您查询的关键词是:java网页截图 。如果打开速度慢,可以尝试快速版;如果想保存快照,
可以添加到搜藏;如果想更新或删除快照,可以投诉快照。
(百度和网页/cping1982/archive/2010/03/06/的作者无关,
不对其内容负责。百度快照谨为网络故障时之索引,不代表被搜索网站的即时页面。)
【Java究竟怎么玩?】思考因为存在,存在所以思考目录视图 摘要视图 订阅 公告:CSDN博客
积分系统正式上线!
如何以Java实现网页截图技术
分类: JAVA应用 技术文章 2010-03-06 23:40 5452人阅读 评论(63) 收藏 举报
今天看到某网友关于“如何以Java实现网页截图技术”的咨询帖,由于出现该咨询的地点
非常不适合较长回复,故以博文形式回答。
事实上,如果您想以Java实现网页截图,也就是“输入一段网址,几秒钟过后就能截取一
张网页缩略图”的效果。那么,您至少有3种方式可以选择。
1、最直接的方式——使用Robot
方法详解:该方法利用Robat提供的强大桌面操作能力,硬性调用浏览器打开指定网页,并
将网页信息保存到本地。
优势:简单易用,不需要任何第三方插件。
缺点:不能同时处理大量数据,技术含量过低,属于应急型技巧。
实现方法:使用如下代码即可。
public static void main(String[] args) throws MalformedURLException,
IOException, URISyntaxException, AWTException {
//此方法仅适用于JdK1.6及以上版本
ktop().browse(
new URL("/intl/en/").toURI());
Robot robot = new Robot();
(10000);
Dimension d = new Dimension(aultToolkit().getScreenSize());
int width = (int) th();
int height = (int) ght();
//最大化浏览器
ease(_F11);
(2000);
Image image = ScreenCapture(new Rectangle(0, 0, width,
height));
BufferedImage bi = new BufferedImage(width, height,
_INT_RGB);
Graphics g = Graphics();
age(image, 0, 0, width, height, null);
//保存图片
(bi, "jpg", new File(""));
}
2、最常规的方式——利用JNI,调用第三方C/C++组件
方法详解:目前来讲,Java领域对于网页截图组件的开发明显不足(商机?),当您需要完
成此种操作时,算得上碰到了Java的软肋。但是,众所周知Java也拥有强大的JNI能力,
可以轻易将C/C++开发的同类组件引为己用。
优势:实现简单,只需要封装对应的DLL文件,就可以让Java实现同类功能。
劣势:同其他JNI实现一样,在跨平台时存在隐患,而且您的程序将不再属于纯Java应用。
实现方法:可参见此用例,具体封装何种C/C++组件请自行选择。
PS:示例来源于ACA HTML to Image
Converter项目
(/en/web-thumb-activex/
),这是一个收费的HTML转Image第三方组件,但封装方式在Java中大同小异。
引用JNI封装:
import .*;
import .*;
import .*;
import .*;
import .*;
import .*;
public class Snap
{
static
{
brary("Snap");
}
public static void main( String[] argv )
{
Snap t_xSnap = new Snap();
t_("", "");
}
public native void Start(String pi_strURL, String pi_strImageName);
发布者:admin,转转请注明出处:http://www.yc00.com/web/1710133175a1706173.html
评论列表(0条)