java 开发屏幕截图工具,适用版JAVA 屏幕截图工具

CapturerHelper.java

package cn.bisoft.java.api.facade.capturer;

import java.awt.BorderLayout;

import java.awt.Cursor;

import java.awt.Rectangle;

import java.awt.Robot;

import java.awt.Toolkit;

import java.awt.event.MouseAdapter;

import java.awt.event.MouseEvent;

import java.awt.event.MouseMotionAdapter;

import java.awt.image.BufferedImage;

import java.io.File;

import java.io.OutputStream;

import javax.imageio.ImageIO;

import javax.swing.ImageIcon;

import javax.swing.JDialog;

import javax.swing.JPanel;

public class CapturerHelper

{

private static CapturerHelper CPAUTERHELPER = new CapturerHelper();

private int x1;

private int y1;

private int x2;

private int y2;

private int recX;

private int recY;

private int recH;

private int recW;

private boolean isFirstPoint;

private BackgroundImage labFullScreenImage;

private Robot robot;

private BufferedImage fullScreenImage;

private BufferedImage pickedImage;

private String defaultImageFormater;

private JDialog dialog;

public static void main(String[] args)

throws Exception

{

String userDir = System.getProperty("user.home");

File tempFile = new File(userDir + "\\桌面\\" + DateHelper.format("dd-HH-mm-ss") + ".jpg");

CapturerHelper capturer = getInstance();

capturer.captureImage();

capturer.saveAsJPEG(tempFile);

ClipboardHelper.setImage(capturer.getPickedImage());

System.exit(0);

}

private CapturerHelper()

{

this.isFirstPoint = true;

this.labFullScreenImage = new BackgroundImage();

this.defaultImageFormater = "png";

this.dialog = new JDialog();

try

{

this.robot = new Robot();

}

catch (Exception e)

{

e.printStackTrace();

}

JPanel cp = (JPanel)this.dialog.getContentPane();

cp.setLayout(new BorderLayout());

this.labFullScreenImage.addMouseListener(new MouseAdapter(this)

{

public void mouseReleased()

{

CapturerHelper.access$0(this.this$0, true);

CapturerHelper.access$6(this.this$0, CapturerHelper.access$1(this.this$0).getSubimage(CapturerHelper.access$2(this.this$0), CapturerHelper.access$3(this.this$0), CapturerHelper.access$4(this.this$0), CapturerHelper.access$5(this.this$0)));

CapturerHelper.access$7(this.this$0).setVisible(false);

}

});

this.labFullScreenImage.addMouseMotionListener(new MouseMotionAdapter(this)

{

public void mouseDragged()

{

if (CapturerHelper.access$8(this.this$0))

{

CapturerHelper.access$9(this.this$0, evn.getX());

CapturerHelper.access$10(this.this$0, evn.getY());

CapturerHelper.access$0(this.this$0, false);

}

else

{

CapturerHelper.access$11(this.this$0, evn.getX());

CapturerHelper.access$12(this.this$0, evn.getY());

int maxX = Math.max(CapturerHelper.access$13(this.this$0), CapturerHelper.access$14(this.this$0));

int maxY = Math.max(CapturerHelper.access$15(this.this$0), CapturerHelper.access$16(this.this$0));

int minX = Math.min(CapturerHelper.access$13(this.this$0), CapturerHelper.access$14(this.this$0));

int minY = Math.min(CapturerHelper.access$15(this.this$0), CapturerHelper.access$16(this.this$0));

CapturerHelper.access$17(this.this$0, minX);

CapturerHelper.access$18(this.this$0, minY);

CapturerHelper.access$19(this.this$0, maxX - minX);

CapturerHelper.access$20(this.this$0, maxY - minY);

CapturerHelper.access$21(this.this$0).drawRectangle(CapturerHelper.access$2(this.this$0), CapturerHelper.access$3(this.this$0), CapturerHelper.access$4(this.this$0), CapturerHelper.access$5(this.this$0));

}

}

public void mouseMoved()

{

CapturerHelper.access$21(this.this$0).drawCross(e.getX(), e.getY());

}

});

cp.add("Center", this.labFullScreenImage);

this.dialog.setCursor(Cursor.getPredefinedCursor(1));

this.dialog.setAlwaysOnTop(true);

this.dialog.setMaximumSize(Toolkit.getDefaultToolkit().getScreenSize());

this.dialog.setUndecorated(true);

this.dialog.setSize(this.dialog.getMaximumSize());

this.dialog.setModal(true);

}

public static CapturerHelper getInstance()

{

return CPAUTERHELPER;

}

public void captureImage()

{

this.fullScreenImage = this.robot.createScreenCapture(new Rectangle(Toolkit.getDefaultToolkit().getScreenSize()));

ImageIcon icon = new ImageIcon(this.fullScreenImage);

this.labFullScreenImage.setIcon(icon);

this.dialog.setVisible(true);

}

public BufferedImage getPickedImage()

{

return this.pickedImage;

}

public ImageIcon getPickedIcon()

{

return new ImageIcon(getPickedImage());

}

public void saveAsPNG(File file)

throws Exception

{

ImageIO.write(getPickedImage(), "png", file);

}

public void saveAsJPEG(File file)

throws Exception

{

ImageIO.write(getPickedImage(), "JPEG", file);

}

public void write(OutputStream out)

throws Exception

{

ImageIO.write(getPickedImage(), this.defaultImageFormater, out);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值