我正在尝试使用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的惟一方法似乎是使用md.getAsTree将其转换为XML树,但是遍历整个树以找到我感兴趣的两个字段似乎非常低效。
有没有办法以一种有效的方式只获取这些字段(哈希表或类似的东西)?
发布于 2014-03-16 01:53:42
我使用sanselan (现在正在引入apache commons,但还不完整)来读取元数据。
ImageInfo image_info = Sanselan.getImageInfo(imageFile);
int bitDepth = image_info.getBitsPerPixel();
int colorType = image_info.getColorType();https://stackoverflow.com/questions/6734903
复制相似问题