我有一个简单的服务器端代码,它接收表示 JPEG 格式图像的字节数组并返回图像的尺寸。
public String processImage(byte[] data) {
long startTime = System.currentTimeMillis();
ByteArrayInputStream stream = new ByteArrayInputStream(data);
BufferedImage bufferedImage;
bufferedImage = ImageIO.read(stream);
int height = bufferedImage.getHeight();
int width = bufferedImage.getWidth();
long endTime = System.currentTimeMillis();
return "height="+height+" | width="+width+" | elapsed="+(endTime-startTime);
}
它可以工作,但问题是速度慢得让人无法接受。对于 100KB 的图像,需要 6 秒。对于 900KB 的图像,需要 30 秒。这是预期的吗?有没有办法让字节数组到 bufferedImage 的转换更快?
仅供参考,抓住高度/宽度并不是我打算做的唯一事情。我最终想处理缓冲图像。所以获取高度/宽度只是一个示例代码。