将网页另存为图片的Java框架

首先要了解的是java在图像这一块非常弱。用java实现截图倒不难,原理吗就是把当前屏幕存成一个图,然后获取鼠标拉去的想去位置然后把截取的图保存到panel里边,再生成图片即可。那么这里要说什么呢?好吧下面就说几个将网页保存为图片的框架:

1、html2image

网上炒这个还不少呢。我说这个就是原声的java代码进行封装的一个jar包。效果非常差,代码就不贴了网上好多。

2、cobra

如果你不知道这个的话,你应该听说过lobobrowser,纯java实现的浏览器,测试了下,除了启动慢的要死其他还可以。

这个代码截取还是不错的,不说了直接上代码:

packagehtmlToImage;

importjava.awt.image.BufferedImage;

importjava.awt.image.RenderedImage;

importjava.io.File;

importjavax.imageio.ImageIO;

importjavax.swing.JFrame;

importjavax.swing.JPanel;

importjavax.swing.SwingUtilities;

importorg.lobobrowser.html.gui.HtmlPanel;

importorg.lobobrowser.html.test.SimpleHtmlRendererContext;

importorg.lobobrowser.html.test.SimpleUserAgentContext;

publicclassCobraTest {

publicstaticvoidmain(String[] args)throwsException {

JFrame window =newJFrame();

HtmlPanel panel =newHtmlPanel();

window.getContentPane().add(panel);

window.setSize(600,400);

window.setVisible(true);

newSimpleHtmlRendererContext(panel,newSimpleUserAgentContext())

.navigate("http://www.elsyy.com/");

System.out.println("10");

Thread.sleep(10000);

BufferedImage image =newBufferedImage(panel.getWidth(),

panel.getHeight(), BufferedImage.TYPE_INT_ARGB);

// paint the editor onto the image

SwingUtilities.paintComponent(image.createGraphics(), panel,

newJPanel(),0,0, image.getWidth(), image.getHeight());

// save the image to file

ImageIO.write((RenderedImage) image,"png",newFile("html.png"));

System.out.println("www");

}

}

但是这个框架应该有个限制,css3应该支持不了。

3、cssbox

这个非常不错。如果网站不做故意限制的话,截图非常完美

packagehtmlToImage;

importjava.io.File;

importjava.io.FileOutputStream;

importorg.fit.cssbox.demo.ImageRenderer;

publicclassCssBox {

publicstaticvoidmain(String[] args)throwsException {

ImageRenderer render =newImageRenderer();

System.out.println("kaishi");

String url ="http://www.elsyy.com/";

FileOutputStream out =newFileOutputStream(newFile("D:"+File.separator+"html.png"));

render.renderURL(url, out, ImageRenderer.TYPE_PNG);

System.out.println("OK");

}

}

4、java原生代码

packagehtmlToImage;

importjava.awt.image.BufferedImage;

importjava.awt.image.RenderedImage;

importjava.io.File;

importjava.net.URL;

importjavax.imageio.ImageIO;

importjavax.swing.JEditorPane;

importjavax.swing.JPanel;

importjavax.swing.SwingUtilities;

/**

* 原理就是在现在的awt或者swing上显示网页然后将内容保存为一个图片

* 没办法控制延迟啊。

* @author zlqiao

*

*/

publicclassJavaCoreApi {

publicstaticvoidmain(String[] args)throwsException {

//load the webpage into the editor

//JEditorPane ed = new JEditorPane(new URL("http://www.google.com"));

JEditorPane ed =newJEditorPane(newURL("http://www.baidu.com"));

System.out.println("10");

Thread.sleep(10000);

ed.setSize(1000,1000);

//create a new image

BufferedImage image =newBufferedImage(ed.getWidth(), ed.getHeight(),

BufferedImage.TYPE_INT_ARGB);

//paint the editor onto the image

SwingUtilities.paintComponent(image.createGraphics(),

ed,

newJPanel(),

0,0, image.getWidth(), image.getHeight());

//save the image to file

ImageIO.write((RenderedImage)image,"png",newFile("html.png"));

System.out.println("ok");

}

}

以上就是介绍的几个网页另存为图片的Java框架,希望对你有帮助吧,如果想了解更多编程语言教程知识请登录e良师益友网。

时间: 2024-10-21 02:22:57

将网页另存为图片的Java框架的相关文章

Chrome浏览器 无需安装插件将整个网页另存为图片

步骤1 ctrl+shift+i 步骤2 ctrl+shift+p 步骤3 输入full 回车确定 感谢先辈们的无私奉献!原文https://blog.csdn.net/wumingid/article/details/89164902 原文地址:https://www.cnblogs.com/xonbar/p/12127270.html

1、Java截取网页形成图片

1.闲扯 有一个GUI编程的开源框架叫SWT(Standard Widget Toolkit),它与sun公司的AWT.Swing类似.非界面编程人员,这里就不扯它们的优缺点了. 或许很多人都没听说过SWT,但是如果说出由它制作出来的一个工具,大家可能会对它肃然起敬.这个工具就是IBM开发的Eclipse.于是我们如果要给Eclipse开发插件,那么就得对SWT非常了解了. 2.要求 要截取网页形成图片,需要1-2要求.这里的1是要配置java.libarary.path;2是需要两个jar包.

Java Web:使用Servlet生成网页随机图片验证码

最近在学习Java Web开发,做了一个生成网页随机图片验证码的例子,在此记录. 一.新建Servlet项目: 在MyEclipse中新建Servlet项目,一步步操作就OK,在此不再赘述.建好之后文件目录树如下图: 二.源代码实现: (1)java代码: package com.zdt.identity; import java.awt.Color; import java.awt.Font; import java.awt.Graphics2D; import java.awt.image.

SSM框架 SSM项目源码 SSM源码 下载 java框架整合Springmvc+mybatis+shiro+bootstrap

获取[下载地址]  QQ: 313596790A 调用摄像头拍照,自定义裁剪编辑头像,头像图片色度调节B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shir

java sql编辑器 数据库备份还原 quartz定时任务调度 自定义表单 java图片爬虫 java代码生成器

A代码编辑器,在线模版编辑,仿开发工具编辑器,pdf在线预览,文件转换编码B 集成代码生成器 [正反双向](单表.主表.明细表.树形表,快速开发利器)+快速表单构建器 freemaker模版技术 ,0个代码不用写,生成完整的一个模块,带页面.建表sql脚本,处理类,service等完整模块C 集成阿里巴巴数据库连接池druid  数据库连接池  阿里巴巴的 druid.Druid在监控.可扩展性.稳定性和性能方面都有明显的优势D 集成安全权限框架shiro  Shiro 是一个用 Java 语言

Android中常见的图片加载框架

图片加载涉及到图片的缓存.图片的处理.图片的显示等.而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题.很多软件厂家的通用做法就是借用第三方的框架进行图片加载. 开源框架的源码还是挺复杂的,但使用较为简单.大部分框架其实都差不多,配置稍微麻烦点,但是使用时一般只需要一行,显示方法一般会提供多个重载方法,支持不同需要.这样会减少很不必要的麻烦.同时,第三方框架的使用较为方便,这大大的减少了工作量.提高了开发效率.本文主要介绍四种常用的图片加载框架,

关于图片加载框架

接上篇,这篇开始对现在比较的流行的第三方图片加载框架做一个对比总结. 这篇文章介绍内容如下: 1.目前流行的图片加载框架有什么? 2.各自的使用方法 3.各自的优缺点 4.优化问题 一.目前流行的图片加载框架有什么? ImageLoader   Glide  Picasso  Fresso(2015年) 注:由于现在ImageLoader使用较少,本篇博文将不再对它进行阐述.主要以其它三个框架为主,有兴趣的同学可以自行学习. 二.各自的使用方法 Picasso:  Picasso .with(t

图片加载框架之Glide和Picasso

Glide介绍 Glide是一个加载图片的库,作者是bumptech,它是在泰国举行的google 开发者论坛上google为我们介绍的,这个库被广泛的运用在google的开源项目中. Glide是一个非常成熟的图片加载库,他可以从多个源加载图片,如:网路,本地,Uri等,更重要的是他内部封装了非常好的缓存机制并且在处理图片的时候能保持一个低的内存消耗. Picasso介绍(毕加索) picasso是Square公司开源的一个Android图形缓存库,地址http://square.github

Android之图片加载框架Fresco基本使用(一)

PS:Fresco这个框架出的有一阵子了,也是现在非常火的一款图片加载框架.听说内部实现的挺牛逼的,虽然自己还没研究原理.不过先学了一下基本的功能,感受了一下这个框架的强大之处.本篇只说一下在xml中设置属性的相关用法. 0.引入Fresco以及相关注意事项. 1.PlaceHolderImage占位图 2.FailureImage加载失败时显示的图片 3.RetryImage重新加载的图片 4.ProgressBarImage加载时显示的进度图片 5.BackgroundImage背景图 6.