Question

How to code to crop and capture image by mousepress. using Java

How to code to crop and capture image by mousepress. using Java
0 0
Add a comment Improve this question Transcribed image text
Answer #1

Please find the Java code to crop and capture images by mouse press

1. CropImage.java

/**

* @author Gopal Malaker

* @version 1.0

* @since 2018-04-02

*

*/

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 {

private static final long serialVersionUID = -8718753966695793325L;

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

public static void main(String args[]) {

new CropImage().start();

}

public void start() {

ImagePanel im = new ImagePanel("C:\\Users\\gmalaker\\Desktop\\Image1.jpeg");

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("C:\\Users\\gmalaker\\Desktop\\Cropped_Image.jpeg");

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);

}

}

2. ImagePanel.java

/**

* @author Gopal Malaker

* @version 1.0

* @since 2018-04-02

*

*/

import java.awt.Dimension;

import java.awt.Graphics;

import java.awt.Image;

import javax.swing.ImageIcon;

import javax.swing.JPanel;

public class ImagePanel extends JPanel {

private static final long serialVersionUID = 185260570543109853L;

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));

setPreferredSize(size);

setMinimumSize(size);

setMaximumSize(size);

setSize(size);

setLayout(null);

setVisible(true);

}

public void paintComponent(Graphics g) {

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

}

}

The Output is attached below:-

Original Image Frame:-

After Cropping and Capturing Image, we get:-

Please let me know in case of any clarifications required. Thanks!

Add a comment
Know the answer?
Add Answer to:
How to code to crop and capture image by mousepress. using Java
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT