参考了网上的一些资料。
package test;

import java.awt.AWTException;
import java.awt.Dimension;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsEnvironment;
import java.awt.Insets;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

/**
 * 截屏,不含任务条,暂无实用效果,以后改进。
 * @author liwenliang
 */
public class TestImage {
	public static void main(String[] args) {
		testImage();
	}
	
	public static void testImage() {
		try {
			// 获取屏幕的大小 
			Toolkit toolkit = Toolkit.getDefaultToolkit();
			Dimension screenSize = toolkit.getScreenSize();
			// 获取屏幕特征
			GraphicsConfiguration gc = 
				GraphicsEnvironment.getLocalGraphicsEnvironment()
								   .getDefaultScreenDevice()
								   .getDefaultConfiguration();
			// 获得屏幕的 insets
			Insets screenInsets = toolkit.getScreenInsets(gc); 
			Rectangle desktopBounds = new Rectangle( 
					screenInsets.left, screenInsets.top, 
	                screenSize.width - screenInsets.left - screenInsets.right, 
	                screenSize.height - screenInsets.top - screenInsets.bottom);
			BufferedImage bImage = new Robot().createScreenCapture(
					new Rectangle(desktopBounds));
			// 文件保存地址,jpg格式也可以,其他还没验证
			String name = "e:\\image.png";
			File f = new File(name);
			ImageIO.write(bImage, "png", f);
			System.out.println("copy screen ok..........");
		} catch (AWTException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
评论
发表评论

您还没有登录,请登录后发表评论