通过java屏幕截图

转载 2006年06月13日 11:43:00

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 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
        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)
    {
        GuiCamera cam= new GuiCamera("d://Hello", "png");//

        cam.snapShot();
    }
}

java实现区域内屏幕截图示例

package com.hongyuan.test; import java.awt.AWTException; import java.awt.BorderLayout; import jav...
  • a137268431
  • a137268431
  • 2015年08月27日 14:00
  • 1071

WebDriver进行屏幕截图

例: 打开百度首页 ,进行截图package com.example.tests; import java.io.File; import org.apache.commons.io.FileUtil...
  • iceryan
  • iceryan
  • 2013年02月03日 11:30
  • 2637

Android给scrollView截图超过屏幕大小形成长图

很多的时候,我们想要分享一个界面的所有内容,可是内容太多,超过了屏幕的大小,简单的截屏已经满足不了我们的需要,这时候我们就可以根据布局里scrollView的高度来截取图片。 代码如下: ...
  • u010164190
  • u010164190
  • 2017年04月14日 13:10
  • 256

一个效果不错的Java Swing模拟屏幕截图工具类

一个效果不错的Java Swing模拟屏幕截图工具类原理:点击截图时,获取当前屏幕的图像,然后再这个静态的图像上进行选择操作。 代码:ScreenShot.javapackage com.qiu.ut...
  • u012093968
  • u012093968
  • 2014年09月16日 14:19
  • 937

android 关于屏幕截屏的几种办法

年末较闲,就上个星期查找各方面的资料关于android截图事情,自已也测试一些代码,已改改进或者优化。接下来进行总结一下。其实,如果真正android系统截屏是需要root权限的。但要用户使用都roo...
  • qq_16064871
  • qq_16064871
  • 2016年02月02日 11:02
  • 7120

MFC实现屏幕截图

BOOL CMyDlg::SaveBitmapToFile(HDC hDc, CBitmap & bitmap, LPCTSTR lpszFileName) { BOOL ret = TRUE; ...
  • u012706792
  • u012706792
  • 2015年06月07日 00:44
  • 6190

屏幕截图小软件的编写——WINDOWS API

近期在学习windows api编程,完全模仿的学习了,熟悉windows api和纯windows api编程 屏幕截图步骤: 1.如何捕获屏幕 2.捕获屏幕后怎么做到选定区域 3.选定区域...
  • ProgrammeringLearner
  • ProgrammeringLearner
  • 2016年12月03日 22:36
  • 1823

VB.NET屏幕截图方法2则

【搬运】VB.NET屏幕截图方法2则 ' 根据VB6代码改的,经过本人优化。请先导入Drawing类库。Declare Function SelectObject...
  • jingxuan84
  • jingxuan84
  • 2013年12月18日 16:54
  • 2565

vc屏幕截图实现

1.获取保存截图文件的路径,暂时选定为桌面 //把截图的文件保存到桌面 virtual BOOL CaptureLolToDesktop(HWND hWnd) { Sleep(1*1000); ...
  • qingzai_
  • qingzai_
  • 2015年08月06日 17:05
  • 2289

Unity3d屏幕截图方法

方法一:在unity的API中,unity给我们提供了一个现成的API  :  Application.CaptureScreenshot(imagename)。但是这个API虽然简单,在PC、mac...
  • Momo_Da
  • Momo_Da
  • 2017年04月24日 14:52
  • 576
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:通过java屏幕截图
举报原因:
原因补充:

(最多只允许输入30个字)