2011-07-18 9 views
4

私はjavax.imageioを使用してPNGイメージを読み込み、ビット深度とカラータイプのメタデータを抽出しようとしています。今私が使用しているjavax.imageioを使用して特定のイメージを効率的に読み取る

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ツリーに変換することですが、興味のある2つのフィールドを見つけるためにツリー全体を繰り返し処理することは非常に非効率的です。

これらのフィールドだけを効率的に取得する方法はありますか(ハッシュテーブルなのか何か)?

答えて

0

私はsanselan(これは現在Apacheのコモンズに持ち込まれていますが、まだ完全ではありません)を使用してメタデータを読み取ります。

  ImageInfo image_info = Sanselan.getImageInfo(imageFile); 
      int bitDepth = image_info.getBitsPerPixel(); 
      int colorType = image_info.getColorType(); 
関連する問題