Java截屏代码

package com.zhuyu_deng.test;

import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File;
import javax.imageio.ImageIO;

/*******************************************************************************
 * 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照" This JavaBean is used to snapshot the
 * GUI in a Java application! You can embeded it in to your java application
 * source code, and us it to snapshot the right GUI of the application
 * 
 * @see javax.ImageIO
 * @author liluqun ([email]liluqun@263.net[/email])
 * @version 1.0
 * 
 ******************************************************************************/

public class ScreenShot
{

	private String fileName; // 文件的前缀

	private String defaultName = "ScreenShot";

	static int serialNum = 0;

	private String imageFormat; // 图像文件的格式

	private String defaultImageFormat = "jpg";

	Dimension d = Toolkit.getDefaultToolkit().getScreenSize();

	/***************************************************************************
	 * 默认的文件前缀为ScreenShot,文件格式为PNG格式 The default construct will use the default
	 * Image file surname "ScreenShot", and default image format "png"
	 **************************************************************************/
	public ScreenShot()
	{
		fileName = defaultName;
		imageFormat = defaultImageFormat;

	}

	/***************************************************************************
	 * @param s
	 *            the surname of the snapshot file
	 * @param format
	 *            the format of the image file, it can be "jpg" or "png"
	 *            本构造支持JPG和PNG文件的存储
	 **************************************************************************/
	public ScreenShot(String s, String format)
	{

		fileName = s;
		imageFormat = format;
	}

	/***************************************************************************
	 * 对屏幕进行拍照 snapShot the Gui once
	 **************************************************************************/
	public void snapShot()
	{

		try
		{
			// 拷贝屏幕到一个BufferedImage对象screenshot
			BufferedImage screenshot = (new Robot())
					.createScreenCapture(new Rectangle(0, 0,
							(int) d.getWidth(), (int) d.getHeight()));
			serialNum++;
			// 根据文件前缀变量和文件格式变量,自动生成文件名
			String name = fileName + String.valueOf(serialNum) + "."
					+ imageFormat;
			File f = new File(name);
			System.out.print("Save File " + name);
			// 将screenshot对象写入图像文件
			ImageIO.write(screenshot, imageFormat, f);
			System.out.print("..Finished!\n");
		} catch (Exception ex)
		{
			System.out.println(ex);
		}
	}

	public static void main(String[] args)
	{
		ScreenShot cam = new ScreenShot("/home/Jerry/imageTMP/", "bmp");//
		cam.snapShot();
	}
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值