• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: 小 中 大 | 推荐给好友 上一篇 | 下一篇

如何捕获视频。

发布: 2007-7-04 13:34 | 作者: admin | 来源:  网友评论 | 查看: 18次 | 进入软件测试论坛讨论

领测软件测试网 捕获当前屏幕图像。
希望多多交流。8-)
package com.borland.samples.welcome;

/**
* Title:
* Description:
* Copyright:    Copyright (c) 2001
* Company:
* @author
* @version 1.0
*/
import java.awt.*;
import java.awt.image.*;
import com.sun.image.codec.jpeg.*;

class ImageCanvas extends Canvas{
  private Image image;
  private Dimension prefSize;

  public ImageCanvas(Image image){
    this.image = image;
    calculatePreferredSize();
  }

  public void setImage(Image image){
    this.image = image;
    calculatePreferredSize();
    repaint();
  }

  private void calculatePreferredSize(){
    prefSize = new Dimension(image.getWidth(this),image.getHeight(this));
    System.out.println(image.getWidth(this));
    setSize(prefSize);
  }
  public Dimension getPreferredSize() {
     return prefSize;
  }
  public Dimension getMinimumSize() {
     return prefSize;
  }
  public void update(Graphics g){
     paint(g);
  }
  public void paint(Graphics g){
     g.drawImage(image,0,0,null);
  }
}

class ImageUtils{
  public static Image getScreenImage(){
    Robot robot;
    try {
      robot = new Robot();
    }catch(Exception e) {
      throw new RuntimeException("unable to construct Robot");
    }
    Dimension screenDims =Toolkit.getDefaultToolkit().getScreenSize();
    Image screen =robot.createScreenCapture(new Rectangle(450,350,screenDims.width,screenDims.height)).getScaledInstance(400,300,Image.SCALE_SMOOTH);
    MediaTracker tracker =new MediaTracker(new Label());
    tracker.addImage(screen,1);
    try {
      tracker.waitForID(0);
    }catch(InterruptedException e) { /** ... */ }
    return screen;
  }
}

public class ScreenCapture extends Frame{
  private ImageCanvas canvas =new ImageCanvas(ImageUtils.getScreenImage());
  public ScreenCapture(){
    add(canvas);
    setSize(400,300);
    setVisible(true);
    Thread imageThread =new UpdateThread();
    imageThread.setDaemon(true);
    imageThread.start();
}
  class UpdateThread extends Thread{
   public void run(){
      while(true){
        try {
          Thread.currentThread().sleep(1000);
        }
        catch (Exception ex) {

        }
        canvas.setImage(ImageUtils.getScreenImage());
        validate();
     }
    }
  }

  public static void main(String[] args){
   new ScreenCapture();

  }
}

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:[email protected] 电话:010-51297073

软件测试 | 领测国际 | ISTQB | ISTQB官网 | TMMi | TMMi认证 | 国际软件测试工程师认证 | 领测软件测试网