4

我正在尝试使用 javax.imageio 读取 PNG 图像,然后提取位深度和颜色类型的元数据。

现在我正在使用:

Iterator<ImageReader> itr = ImageIO.getImageReaders(stream);
while(itr.hasNext())
{
    ImageReader reader = itr.next();
    reader.setInput(stream);
    IIOMetadata md = reader.getImageMetadata(0);
}

但在这一点之后,我被困住了。似乎读取 MetaData 的唯一方法是使用 将其转换为 XML 树md.getAsTree,但是为了找到我感兴趣的两个字段而遍历整个树似乎非常低效。

有什么方法可以有效地获取这些字段(哈希表或类似的东西)?

4

1 回答 1

0

我使用 sanselan(现在已被引入 apache commons,但尚未完成)来读取元数据。

            ImageInfo image_info = Sanselan.getImageInfo(imageFile);
            int bitDepth = image_info.getBitsPerPixel();
            int colorType = image_info.getColorType();
于 2014-03-15T17:53:41.613 回答