2

ユーザーからの入力として画像を受け入れています。JPEG画像のみを許可したい。画像はInputStream(以下で呼び出されmyInputStreamます)として到着しています。以下のコードでは、によって返されるイテレータImageIO.getImageReaders()は常に空です。

ImageInputStream imageInputStream = ImageIO.createImageInputStream(
    myInputStream);
Iterator<ImageReader> iter = ImageIO.getImageReaders(imageInputStream);
if (!iter.hasNext()) {
    // this always happens
}
ImageReader reader = (ImageReader) iter.next();
if (!reader.getFormatName().equals("jpeg")) {
    // haven't got this far yet
}

私もmyInputStream直接に渡してみましImageIO.getImageReaders()たが、同じ結果になりました。

4

1 に答える 1

5

空のイテレータは通常、ImageIOが画像をデコードするための適切な画像リーダーを見つけられなかったことを意味します。これは、クラスパスに適切なデコーダーがないか、画像にサポートされていないカラーモデルがあることが原因である可能性があります。

于 2010-12-25T13:31:46.617 に答える