【发布时间】:2017-11-09 01:22:08
【问题描述】:
我有一个 TIFF 图像已读入我的应用程序并存储在 BufferedImage 对象中。如何使用 Java 高级成像 (JAI) API 确定图像的水平和垂直 DPI?我一直在环顾四周,但找不到直接的方法来实现这一点。
【问题讨论】:
-
如果你只有一个
BufferedImage,那你就不走运了。如果你有一个文件、流或类似的引用,我建议查看ImageIO API,尤其是ImageReader.getImageMetadata(),从那里获取 DPI 应该相当简单。 -
数据以来自 Web 服务调用的字节数组形式提供给我。我想我可以回到最初从字节数组中读取它的点来尝试
ImageReader。然后将 DPI 信息传递到我需要它的位置。我的下一个绊脚石似乎是,当我尝试使用ImageIO.getImageReadersByFormatName("tiff")加载阅读器时,它说它找不到该类型的阅读器。还在想办法解决这个问题。 -
我不断发现 Java 成像 API 有多么复杂,而我对它们知之甚少......
-
很难不同意复杂性.. :-/ TIFF 问题:有几个用于 ImageIO 的 TIFF 插件。您可以使用 jai-imageio,它支持标准和原生格式的元数据。我也想推荐我自己的插件,但它还不支持元数据。 :-)
-
你的插件是什么?不确定我是否会在这个项目中使用它,但将来了解它可能会有用。