Обнаружение кодирования изображения в Java - PullRequest
2 голосов
/ 25 декабря 2010

Я принимаю изображение от пользователя. Я хочу разрешить только изображение в формате 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() с тем же результатом.

1 Ответ

4 голосов
/ 25 декабря 2010

Пустой итератор обычно означает, что ImageIO не нашел хорошего устройства для чтения изображений для декодирования вашего изображения.Это может быть связано с тем, что в вашем classpath отсутствует правый правильный декодер или у вашего изображения неподдерживаемая цветовая модель .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...