首页 > 技术文章 > JAVA之网页截屏

caidupingblogs 2016-08-07 20:56 原文

先吐槽一下下:

表示接近两个月没有敲代码了,现在看一下代码都感觉有点生了。三天打鱼两天晒网是不行的,再说我本来就有“健忘症”,真的是木有办法啊 ̄へ ̄。我一直信奉一句话:“勤能补拙”,它也是我学习路上的座右铭。一日一学一日功,一日不学十日空,说的一点也没错啊。这几天再重新温习一下(不能全忘了),由于这台电脑是临时用的,我就不装Eslipse去试代码了。

之前我也写过JAVA实现截屏效果,用了两三种方法,发现还是现在的这种方法最简单。但是要注意的是此方法仅适用于JdK1.6及以上版本。

import java.awt.AWTException;
import java.awt.Desktop;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URISyntaxException;
import java.net.URL;

import javax.imageio.ImageIO;

public class CutPicture {
  public static void main(String[] args) throws MalformedURLException,
  IOException, URISyntaxException, AWTException {
    Desktop.getDesktop().browse(new URL("http://open-open.com/").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,height));
    BufferedImage bi = new BufferedImage(width, height,
    BufferedImage.TYPE_INT_RGB);
    Graphics g = bi.createGraphics();
    g.drawImage(image, 0, 0, width, height, null);
    // 保存图片
    ImageIO.write(bi, "jpg", new File("c:/open.jpg"));
    bi.close();
  }
}

  

推荐阅读