IT虾米网

Java定期自动截屏的代码详解

qq123 2018年06月24日 编程语言 325 0
 
 
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 java.util.Timer; 
import java.util.TimerTask; 
 
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 
 * @version 1.0 
 * 
 *********************************************************************/ 
public class GuiCamera extends TimerTask { 
 private String fileName;//文件的前缀 
 
 private String defaultName = "GuiCamera"; 
 
 static int serialNum = 0; 
 
 private String imageFormat;//图像文件的格式 
 
 private String defaultImageFormat = "png"; 
 
 Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); 
 
 /**************************************************************** 
  * 默认的文件前缀为GuiCamera,文件格式为PNG格式 
  * The default construct will use the default 
  * Image file surname "GuiCamera", 
  * and default image format "png" 
  ****************************************************************/ 
 public GuiCamera() { 
  fileName = defaultName; 
  imageFormat = defaultImageFormat; 
 
 } 
 
 /**************************************************************** 
  * 本构造支持JPG和PNG文件的存储 
  * @param s the surname of the snapshot file 
  * @param format the format of the  image file, 
  * it can be "jpg" or "png" 
  ****************************************************************/ 
 public GuiCamera(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) dimension 
       .getWidth(), (int) dimension.getHeight())); 
 
   // 根据文件前缀变量和文件格式变量,自动生成文件名 
   String name = fileName + "." + 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 void run() { 
  snapShot(); 
 } 
 
 public static void main(String[] args) { 
  Timer timer = new Timer(); 
  int fileNumber = 0; 
  timer.schedule(new GuiCamera("C://11//Hello" + ++fileNumber, "png"), 0, 
    10000); 
 } 
}  

发布评论

分享到:

IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!

文件排序Java工具类详解
你是第一个吃螃蟹的人
发表评论

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。