问题出在使用BufferedImage本身。到将文件读入内存时,您将没有堆空间了。根据用途不同,可以使用图像读取器,也可以增加堆的大小。
我建议您使用图像阅读器。例如,要获取图像阅读器,您需要编写以下代码:
// Create an image input stream on the image ImageInputStream iis = ImageIO.createImageInputStream(o); // Find all image readers that recognize the image format Iterator iter = ImageIO.getImageReaders(iis); if (!iter.hasNext()) { // No readers found return null; } // Use the first reader ImageReader reader = (ImageReader)iter.next();
来自:http :
//www.exampledepot.com/egs/javax.imageio/DiscType.html
拥有ImageReader的人可以通过调用以下命令获得宽高比
reader.getAspectRatio()
我不确定您如何将ImageReader转换为缩略图。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)