`
leoizumi
  • 浏览: 91453 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Java 截图程序

    博客分类:
  • J2SE
阅读更多

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 
*   
******************************************************************************/ 

class GuiCamera   
{   
    private String fileName; // 文件的前缀   

    private String defaultName = "GuiCamera";   

    static int serialNum = 0;   

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

    private String defaultImageFormat = "png";   

    Dimension d = 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;   
    }   

    /*********************************************************************** 
     * @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 GuiCamera(String s, String format)   
    {   
    fileName = s;   
    imageFormat = format;   
    }   

    /*********************************************************************** 
     * 对屏幕进行拍照 snapShot the Gui once 
     **********************************************************************/ 
    public void snapShot()   
    {   
    try 
    {   
        // 拷贝屏幕到一个BufferedImage对象screenshot
       //这里 createScreenCapture中的4个参数就是需要截取的图形的2个顶点,也就是通过js确定的2个点
        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! ");   
    } catch (Exception ex)   
    {   
        System.out.println(ex);   
    }   
    }   

    public static void main(String[] args)   
    {   
    GuiCamera cam = new GuiCamera("C:\\Test2", "png");   
    cam.snapShot();   
    }   
}
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics