JAVA实现网页快照,存为图片格式
来源:互联网 发布:湖南师范大学网络充值 编辑:程序博客网 时间:2024/05/13 17:20
截取的google的效果,将就吧,不是特别好。 但是作为普通的应用,我想这个效果我已经很满意了。
注意,里面的
this.setVisible(true);
这句话如果运行在一些不能显示图形界面的机器上,请屏蔽掉它,不过这样的话,网页里的图片就不能被截取了。
效果图:
完整的源代码如下:
转自:http://blog.csdn.net/java2000_net/archive/2008/12/30/3643528.aspx#995286
注意,里面的
this.setVisible(true);
这句话如果运行在一些不能显示图形界面的机器上,请屏蔽掉它,不过这样的话,网页里的图片就不能被截取了。
效果图:
完整的源代码如下:
- import java.awt.Graphics2D;
- import java.awt.RenderingHints;
- import java.awt.geom.AffineTransform;
- import java.awt.image.BufferedImage;
- import java.awt.image.ColorModel;
- import java.awt.image.WritableRaster;
- import java.io.*;
- import javax.imageio.*;
- import javax.swing.*;
- /**
- * HTML2JPG,HTML页面转图片的实现方法。
- *
- * @author 老紫竹(Java世纪网,java2000.net)
- */
- public class Test extends JFrame {
- public Test(String url, File file) throws Exception {
- JEditorPane editorPane = new JEditorPane();
- editorPane.setEditable(false);
- editorPane.setPage(url);
- JScrollPane jsp = new JScrollPane(editorPane);
- getContentPane().add(jsp);
- this.setLocation(0, 0);
- this.setVisible(true); // 如果这里不设置可见,则里面的图片等无法截取
- // 如果不延时,则图片等可能没有时间下载显示
- // 具体的秒数需要根据网速等调整
- Thread.sleep(5 * 1000);
- setSize(10000, 10000);
- pack();
- // BufferedImage image = new BufferedImage(editorPane.getWidth(),
- // editorPane.getHeight(), BufferedImage.TYPE_INT_RGB);
- BufferedImage image = new BufferedImage(editorPane.getWidth(), editorPane.getHeight(),
- BufferedImage.TYPE_INT_RGB);
- Graphics2D graphics2D = image.createGraphics();
- editorPane.paint(graphics2D);
- BufferedImage image1 = resize(image, 600, 400);
- ImageIO.write(image1, "jpg", file);
- dispose();
- }
- public static void main(String[] args) throws Exception {
- new Test("http://www.google.cn", new File("d:/file.jpg"));
- }
- public static BufferedImage resize(BufferedImage source, int targetW, int targetH) {
- // targetW,targetH分别表示目标长和宽
- int type = source.getType();
- BufferedImage target = null;
- double sx = (double) targetW / source.getWidth();
- double sy = (double) targetH / source.getHeight();
- // 这里想实现在targetW,targetH范围内实现等比缩放。如果不需要等比缩放
- // 则将下面的if else语句注释即可
- if (sx > sy) {
- sx = sy;
- targetW = (int) (sx * source.getWidth());
- // } else {
- // sy = sx;
- // targetH = (int) (sy * source.getHeight());
- }
- if (type == BufferedImage.TYPE_CUSTOM) { // handmade
- ColorModel cm = source.getColorModel();
- WritableRaster raster = cm.createCompatibleWritableRaster(targetW, targetH);
- boolean alphaPremultiplied = cm.isAlphaPremultiplied();
- target = new BufferedImage(cm, raster, alphaPremultiplied, null);
- } else
- target = new BufferedImage(targetW, targetH, type);
- Graphics2D g = target.createGraphics();
- // smoother than exlax:
- g.setRenderingHint(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY);
- g.drawRenderedImage(source, AffineTransform.getScaleInstance(sx, sy));
- g.dispose();
- return target;
- }
- }
转自:http://blog.csdn.net/java2000_net/archive/2008/12/30/3643528.aspx#995286
- JAVA实现网页快照,存为图片格式
- JAVA实现网页快照,存为图片格式
- JAVA实现网页快照,存为图片格式
- 网页快照 java 实现
- java实现图片格式转换为JPG
- java网页快照-网页转存为图片
- 在内存绘图并保存为图片格式
- Java实现网页截图技术,根据URL得到网页快照
- JAVA将Excel中的报表导出为图片格式(二)实现思路
- JAVA将Excel中的报表导出为图片格式(三)换一种实现
- 网页快照
- PHP网页截图-网页快照实现
- 实现Android 版网页快照功能
- PHP网页截图-网页快照实现
- java用jimi.jar实现图片格式转换
- phantomjs 根据url 将所对应的网页存为图片格式
- VS2010 用CxImage读入各种图片格式后在内存中转换为HBITMAP位图
- Java-图片格式
- vc可设置字体和颜色的按钮
- VC中Radio控件的用法(;转载)
- 2009年,像个男人一样去战斗
- VC中多线程(转)
- VC程序启动画面
- JAVA实现网页快照,存为图片格式
- 在VC++中读写INI文件(转载)
- 企业级IM,不要随便上IM
- 在ubuntu下看电视
- 对于免费网站, 要宽容,要理解, 更要支持
- VC++播放音频的简单方法
- 2008,中国年
- map以自定义类型当Key(键值)
- 亲爱的 我是带有巨毒的 你爱我 你会万劫不复……