Sometimes, you need to crop an image. In order to crop image in java, we will use the method subimage from BufferedImage class.
bufferedImage.getSubimage(x, y, width, height);
Example:
This static method will return the cropped image given the starting x and y coordinate and the width and height that will be cropped from the image.
/**
* Crops an image to the specified region
* @param bufferedImage the image that will be crop
* @param x the upper left x coordinate that this region will start
* @param y the upper left y coordinate that this region will start
* @param width the width of the region that will be crop
* @param height the height of the region that will be crop
* @return the image that was cropped.
*/
public static BufferedImage cropImage(BufferedImage bufferedImage, int x, int y, int width, int height){
BufferedImage croppedImage = bufferedImage.getSubimage(x, y, width, height);
return croppedImage;
}
File imageFile = new File("C:/Javapointers/image.jpg");
BufferedImage bufferedImage = ImageIO.read(imageFile);
This method will return the image buffered from the file.
After cropping the image, we can now save or write the file to the file system using:
File pathFile = new File("C:/Javapointers/image-crop.jpg");
ImageIO.write(image,"jpg", pathFile);
where image is the cropped image.