Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cropping an image in Java [closed]

Tags:

java

image

crop

I'm trying to cut a certain part of image in Java and save it back to disk. Is there a function that cuts the images from X, Y with the specified width and height?

like image 285
Akash Avatar asked Oct 25 '11 18:10

Akash


1 Answers

You'd typically

  1. Create a new BufferedImage (dst below) with the desired width and height.
  2. Get hold of it's Graphics object
  3. Load the original .jpeg image (src below)
  4. Paint the desired part of that, onto the BufferedImage
  5. Write the buffered image out to file using ImageIO.

In code:

Image src = ImageIO.read(new File("duke.jpg"));

int x = 10, y = 20, w = 40, h = 50;

BufferedImage dst = new BufferedImage(w, h, BufferedImage.TYPE_INT_ARGB);
dst.getGraphics().drawImage(src, 0, 0, w, h, x, y, x + w, y + h, null);

ImageIO.write(dst, "png", new File("duke_cropped.png"));

Given this .jpg...

enter image description here

...It generates this .png:

enter image description here

like image 68
aioobe Avatar answered Sep 28 '22 11:09

aioobe