2

我在 Servlet 中使用 AsyncScalr 来缩小一些大图像(约 10-15 兆字节),实际调整大小的过程大约需要 40 毫秒,这并不多。过度杀伤来自从本地存储中读取图像作为 BufferedImage。所以时间大多是这样的:

读取图像文件:1630ms !!调整图像大小:41ms 写入图像:40ms

下面是我正在使用的代码,有没有更优化的方法来做到这一点?

        final FileImageInputStream fileImageInputStream = new FileImageInputStream(file);
        BufferedImage bufferedImage = ImageIO.read(fileImageInputStream);

        // resize file
        Future<BufferedImage> result = AsyncScalr.resize(bufferedImage, Method.SPEED, width, OP_ANTIALIAS, OP_BRIGHTER);
        try {
            bufferedImage = result.get();
        }
        catch (InterruptedException e) {
            e.printStackTrace();
        }
        catch (ExecutionException e) {
            e.printStackTrace();
        }

        // Write the image
        ImageIO.write(bufferedImage, imageOutput, outputStream);
4

1 回答 1

0

回答我的问题,使用 java.awt.Toolkit 加载图像已经解决了这个问题。

于 2012-08-29T09:13:54.850 回答