Я не пробовал это для себя. Но изучение этой и этой страницы приводит меня к этому коду:
BufferedImage im = ImageIO.read(new File("in.jpg"));
// now manipulate image
...
// now get only a part of it
Raster raster = im.getData(new Rectangle(xOffset, yOffset, width, height));
BufferedImage im2 = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
im2.setData(raster);
ImageIO.write(im2, "jpg", new File("out.jpg"));