【发布时间】:2013-03-26 18:55:27
【问题描述】:
我正在尝试提高我们系统的性能(一个运行在Tomcat中的Java应用程序),现在瓶颈在于一次操作,我们需要读取并返回tiff图像的维度,所以我们使用JAI的ImageDecoder并使用
ImageDecoder decoder = ImageCodec.createImageDecoder("TIFF", input, param);
RenderedImage r = decoder.decodeAsRenderedImage();
int width = r.getWidth();
int height = r.getHeight();
从采样数据来看,createImageDecoder 花费了很多时间。我的假设(不去 ImageCodec 的源代码)是它可能试图解码输入流。
来自 Android 领域,我希望有一个类似的解决方案来解码边界,例如设置 BitmapFactory.Options.inJustDecodeBounds = true,但到目前为止还没有找到任何其他类似的库。 (我知道 AOSP 中缺少对 Android 的 tiff 支持,但这是另一天的话题。)
有人知道有这样的图书馆吗?或者有没有办法使用 JAI/ImageIO 实现类似的目标?
【问题讨论】:
-
专门针对 TIFF 文件,还是针对 Java 支持的所有图像格式?
-
@RussellZahniser 专门针对 Tiff,如果可能的话。 (由于尺寸限制,我们无法切换到其他格式)
-
我会试试你上面的帖子,谢谢!
-
不幸的是,即使在我将 jai_imageio lib jar 放入我的类路径之后,我也无法让它与 Tif 一起使用 :-(