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

Java ImageIO.write()最多需要6秒钟

东弘扬
2023-03-14
问题内容

我正在编写一个Web应用程序,我需要将图像从servlet发送到客户端。图像是动态生成的,并且很大(+ -2MB)。可能是jpeg,png或gif。

现在,我正在使用ImageIO.write()将图像写入输出流,但是其速度很慢。客户最多需要6秒钟才能看到图像。我需要加快速度。

有什么建议?

顺便说一句 我知道正在寻找ImageIO主题的更快替代方案。但这并没有帮助我。由于使用PNG的速度很慢,因此ImageMagick不是解决方案,我已经测试了JAI,甚至更糟。

提前致谢

编辑:

为您展示一些代码:

BufferedImage bi = [code to generate Image];
response.setContentType(mime);
ServletOutputStream out = response.getOutputStream();
ImageIO.write(bi,"png",out);

我删除了异常处理以提高可读性。


问题答案:

通常,Java中的图像编码速度很慢,但是您可能还需要确保已安装本机库,因为它们在性能上有很大的不同。

http://download.java.net/media/jai-imageio/builds/release/1.1/INSTALL-
jai_imageio.html



 类似资料:
  • 我有一个json文件,大约1MB。我正在尝试用Klaxon库解析这个JSON,但需要大约30秒。我不想使用SQLite。我能做什么?

  • 触发事件大约需要10秒。 以下是为 根据文档,这可能需要几秒钟。 此方法立即返回。调用它会导致位置管理器获得位置修复(可能需要几秒钟),并使用结果调用代理的locationManager(uuIdUpdateLocations:)方法。 但这会花费10秒吗?还是我遗漏了什么?

  • 我正在编写一个非常基本的油漆应用程序。 我的应用程序有一个图像,当我触摸任何地方时,这个地方会填充一种颜色。 我使用洪水填充算法(http://en.wikipedia.org/wiki/Flood_fill),特别是第二种替代实现方法。 我使用像素图来更新纹理。 这在我的电脑上运行得很好,问题是在我的android(分辨率为720p的摩托罗拉moto G,android 4.4)上执行应用程序时

  • 我只需要小时,分钟和秒的倒计时,我在谷歌上搜索其他的js,但没有找到我要找的。 我不需要几天。

  • http://localhost/test?name= 它的工作没有任何问题,没有抛出任何异常或任何其他迹象。为什么?

  • 今天我试着从Obj-C出发,去Swift,我正在阅读文档。我试图用Swift创建一个简单的IBOutlet,但它总是给我这些错误。 必需的init(coder-aDecoder:NSCoder){fatalError(“init(coder:)尚未实现”)} 这段代码会不断弹出: 但当我添加一个!马克,它运行时没有像这样的错误 同样的事情也发生在iBaction上。。。