当前位置: 首页 > 面试题库 >

从Java中的超大图像文件读取区域

松安民
2023-03-14
问题内容

是否有一个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
}


 类似资料:
  • 问题内容: 我可以用来从图像(JPEG,PNG)文件中提取文本的最佳开源Java库是什么? 问题答案: 有GOCR和tesseract,但我不确定它们的当前版本如何堆叠-尝试同时尝试您需要处理的一些典型输入并通过此试验进行选择吗?

  • 问题内容: 我需要非常了解Java和内存问题的人的建议。我有一个大文件(大约1.5GB),我需要将此文件切成许多小文件(例如100个小文件)。 我通常知道如何做到这一点(使用),但是我想知道你是否对内存有任何建议,或者提示如何更快地做到这一点。 我的文件包含文本,它不是二进制文件,每行大约有20个字符。 问题答案: 首先,如果你的文件包含二进制数据,则使用将是一个大错误(因为你会将数据转换为Str

  • 在我的phonegap应用程序(android版本4.4.2)中,我需要选择图像形式sdcard。在这种情况下,我无法读取图像大小和名称。我的代码就像。 在我的Android设备(v 4.4.2)专辑中显示“最近”,“驱动器”,“图像”,“图库”,...当从图库中选择图像时,只有图像大小是得到的。除了图库图像大小是无法得到.. 参考了这个,但没有获得成功 Cordova/PhoneGap照片文件大

  • 问题内容: 佳能/尼康/其他相机将传感器的原始输出保存为某些专有格式(.CR2等)。是否有旨在读取它们并将其转换为可管理的BufferedImages的Java库? 在这里,我不需要关心完全可定制的转换(类似于ufraw或imagemagick),而是“可以正常工作”以渲染此类图像的简单预览的简单方法。 问题答案: 我去过你那里,我对你有感觉。最好的选择是使用基于Adobe或dcraw的程序自动创

  • 这是我的选项2选项 但它给出了一个错误的说法 java.io.FileNotFoundException:C:\users\businesssupport\documents\netBeansProjects\InvoiceGenerator\resources\hemaslogo.jpg(系统找不到指定的路径)

  • 当我构建一个jar文件并运行它时,由于找不到图像图标,它显示一个空指针异常 这是我运行jar文件时得到的错误 但是当我在NetBeans中运行这个项目时,它运行良好 这是我列出罐子里所有文件时的输出