标准ImageIO允许您读取(大)图像区域,而无需先将整个图像读取到内存中。
Rectangle sourceRegion = new Rectangle(x, y, w, h); // The region you want to extractImageInputStream stream = ImageIO.createImageInputStream(input); // File or input streamIterator<ImageReader> readers = ImageIO.getImageReaders(stream);if (readers.hasNext()) { ImageReader reader = readers.next(); reader.setInput(stream); ImageReadParam param = reader.getDefaultReadParam(); param.setSourceRegion(sourceRegion); // Set region BufferedImage image = reader.read(0, param); // Will read only the region specified}


