我有3000x3000px的图像我想将其缩小到300x300像素,我使用标准的Java ImageIo库来实现这一目标。
伪代码类似于:
Statement1: buffReader = ImageIo.read(new File("bigFile.jpg"));
Statement2: resize(buffread, 300, 300);
问题是第一个声明需要2秒!处理。 声明2:处理需要78毫秒,我可以忍受。
总而言之,这需要2.1秒,这对于图像的缩小是不可接受的,有更好或更快的方法吗?
仔细阅读:ImageIO.read()的Java库,有两个函数。
ImageIo.read(file) {
Statement1: BufferedContent content = readFromFile(file);
Statement2: convertToBufferedImage(content);
}
声明1:需要大约168毫秒,这也是我可以忍受的东西, 声明2需要1800毫秒(1.8毫秒),我不能。 我提到这一点是为了证明I / O不是这里最昂贵的操作。