⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 capturer.java

📁 java开发的netbeans插件中的application原型
💻 JAVA
字号:
/*
 * Capturer.java
 *
 * Created on 2006年11月14日, 上午3:13
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package cn.edu.tsinghua.thss.talkie.capture;

import java.awt.AWTException;
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.event.MouseEvent;
import java.awt.event.MouseMotionListener;
import java.awt.image.BufferedImage;
import javax.swing.JFrame;

/**
 *
 * @author promenade
 */
public class Capturer implements Runnable{
    
    Dimension screenSize;
    Image screen;
//    int x,y;
    
    /** Creates a new instance of Capturer */
    public Capturer() {
        screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        Thread thread = new Thread( this );
        thread.start();
    }
    
    public BufferedImage capture( ){
        Dimension d = screenSize;
        BufferedImage screenshot = null;
        try {
            screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
        } catch (AWTException ex) {
            ex.printStackTrace();
        }
//        Image image = compressSize( screenshot, 3 );
//        return image;
        return screenshot;
    }
    
    public Image compressSize( BufferedImage bi, double ratio ){
        if( ratio < 1 ) return null;
        double width = bi.getWidth() / ratio;
        double height = bi.getHeight() / ratio;
        return  bi.getScaledInstance( (int)Math.floor(width), (int)Math.floor(height), java.awt.Image.SCALE_SMOOTH);
    }

    public Image compressSize( BufferedImage bi, Dimension target ){
        return  bi.getScaledInstance( (int)Math.floor( target.getWidth() ), (int)Math.floor( target.getHeight() ), java.awt.Image.SCALE_SMOOTH);
    }

    public void run() {
//        while(true){
//            screen = this.capture();
//            try {
//                Thread.sleep(100);
//            } catch (InterruptedException ex) {
//                ex.printStackTrace();
//            }
//        }
        screen = this.capture();
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -