是否有一个 Java 库可以读取非常大的图像(例如 JPEG)文件(> 10,000 x 10,000 像素)的区域,而无需将整个图像保存在内存中。
或者,哪个 Java 库能够以最少的开销处理非常大的图像文件。
最佳答案
标准 ImageIO 允许您读取(大)图像的区域,而无需先将整个图像读入内存。
Rectangle sourceRegion = new Rectangle(x, y, w, h); // The region you want to extract
ImageInputStream stream = ImageIO.createImageInputStream(input); // File or input stream
Iterator<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
}
关于java - 从Java中的非常大的图像文件中读取区域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18466513/