Java Swing截图

ImagePanel.java

package sy;


import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JPanel;

class ImagePanel extends JPanel {

private Image img;

public ImagePanel(String img) {

this(new ImageIcon(img).getImage());

}

public ImagePanel(Image img) {

this.img = img;

Dimension size = new Dimension(img.getWidth(null), img.getHeight(null));

// Dimension size = new Dimension(10,10);

setPreferredSize(size);

setMinimumSize(size);

setMaximumSize(size);

setSize(size);

setLayout(null);

}

public void paintComponent(Graphics g) {

g.drawImage(img, 0, 0, null);

}

}


CropImage.java

package sy;
import java.awt.Graphics;

import java.awt.Rectangle;

import java.awt.Robot;

import java.awt.event.MouseEvent;

import java.awt.event.MouseListener;

import java.awt.event.MouseMotionListener;

import java.awt.image.BufferedImage;

import java.io.File;

import javax.imageio.ImageIO;

import javax.swing.JFrame;

public class CropImage extends JFrame implements MouseListener, MouseMotionListener {

int drag_status=0,c1,c2,c3,c4;

public static void main(String args[])

{

new CropImage().start();

}

public void start()

{

ImagePanel im=new ImagePanel("D:/sock.png");

add(im);

setSize(400,400);

setVisible(true);

addMouseListener(this);

addMouseMotionListener( this );

setDefaultCloseOperation(EXIT_ON_CLOSE);

}
public void draggedScreen()throws Exception {

int w = c1 - c3;

int h = c2 - c4;

w = w * -1;

h = h * -1;

Robot robot = new Robot();

BufferedImage img = robot.createScreenCapture(new Rectangle(c1, c2,w,h));

File save_path=new File("screen1.jpg");

ImageIO.write(img, "JPG", save_path);

System.out.println("Cropped image saved successfully.");

} @Override public void mouseClicked(MouseEvent arg0) {

}

@Override public void mouseEntered(MouseEvent arg0) {

}

@Override public void mouseExited(MouseEvent arg0) {

}

@Override public void mousePressed(MouseEvent arg0) {

repaint();

c1=arg0.getX();

c2=arg0.getY();

}

@Override public void mouseReleased(MouseEvent arg0) {

repaint();

if(drag_status==1)

{

c3=arg0.getX();

c4=arg0.getY();

try

{

draggedScreen();

}

catch(Exception e)

{

e.printStackTrace();

}

}

}

@Override public void mouseDragged(MouseEvent arg0) {

repaint();

drag_status=1;

c3=arg0.getX();

c4=arg0.getY();

}

@Override public void mouseMoved(MouseEvent arg0) {

}

public void paint(Graphics g) {

super.paint(g);

int w = c1 - c3;

int h = c2 - c4;

w = w * -1;

h = h * -1;

if(w<0)

w = w * -1;

g.drawRect(c1, c2, w, h);

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值