3

ここで提案されている解決策に従って、Java を使用して PNG ファイルのメタデータを読み込もうとしています。

しかし、メソッドImageIO.getImageReaders(inputStream)はリーダーの空のリストを返しています。ストリームを読み取ってImageIO.read結果のイメージを画面にレンダリングすることで、ストリームが正しいことを確認しました。

そして、これが私が混乱している理由です。ImageIO.read有効な画像を返すので、ImageReaderこのストリームを解釈できると主張する人がいると思います。画像データの解釈と画像のメタデータの解釈に違いはありますか?

この問題のヒントや解決策はありますか?

どうもありがとうございました。

4

1 に答える 1

5

ImageIO.getImageReaders ()は を期待していると思います。 createImageInputStreamを使用ImageInputStreamして作成してみてください。それがボンネットの下で行うことだと思います。InputStreamImageIO.read(InputStream)

とにかく、PNG があることを既に知っている場合は、なぜ使用しないのgetImageReadersByFormatName("png")ですか?

ところで:高さと幅(およびカラーモデルなど)は、ピクセル値(実際のデータ)の一部ではないという意味で「画像メタデータ」と見なすことができますが、一般的な用語では、それらはみなされますむしろ、イメージ (必須)プロパティとして。画像メタデータは一般に (具体的にはIIOMetadataで) 追加の「雑多な」データ (物理解像度、タイムスタンプなど) であり、通常は画像データにアクセスする必要はありません。

于 2013-04-17T20:48:39.977 に答える