Java / ImageIO получает размеры изображения без чтения всего файла?

Есть ли способ получить размеры изображения без чтения всего файла?

URL url=new URL(); BufferedImage img=ImageIO.read(url); System.out.println(img.getWidth()+" "+img.getHeight()); img=null; 

 try(ImageInputStream in = ImageIO.createImageInputStream(resourceFile)){ final Iterator readers = ImageIO.getImageReaders(in); if (readers.hasNext()) { ImageReader reader = readers.next(); try { reader.setInput(in); return new Dimension(reader.getWidth(0), reader.getHeight(0)); } finally { reader.dispose(); } } } 

Спасибо sfussenegger за предложение

Использование ImageReader.getHeight (int) и ImageReader.getWidth (int) обычно только считывает заголовок изображения (я смотрю на источники JDK6). Таким образом, ImageReader , скорее всего, лучший выбор.

Вам нужно будет изучить ImageReader.getImageMetadata() . К сожалению, API изображений Java совсем не прост в использовании.

Вы можете найти описания форматов метаданных в документации пакета javax.imageio.metadata .

Есть библиотеки сторонних разработчиков, которые проще в использовании, такие как MediaUtil (последнее обновление 3 года назад, но это сработало для меня).

  • Сколько данных может содержать список максимум?
  • Почему это происходит с оператором sizeof при сравнении с отрицательным числом?
  • Как определить размер формы windows ACTUAL (со всеми неклиентными элементами) при запуске Aero?
  • Есть ли причина не использовать целые типы фиксированной ширины (например, uint8_t)?
  • Определите размер слова моего процессора
  • Как я могу получить размер файла в C?
  • Можете ли вы resize массива C ++ после инициализации?
  • В C, почему sizeof (char) 1, когда 'a' является int?
  • Размер массива (длина) в C #
  • Как узнать размер сеанса в ASP.NET из веб-приложения?
  • Является ли sizeof (некоторый указатель) всегда равным четырем?
  • Interesting Posts

    Счетчик исключений Java для JVM HotSpot

    Когда вы можете опустить расширение файла в директиве #include?

    Получение типа System.Type из частичного имени типа

    Как добавить элемент в контекстное меню «Отправить»

    Как сообщить Spotlight не индексировать определенную папку?

    Содержимое Bootstrap popover не может изменяться динамически

    Как поместить двойные кавычки в строку в vba?

    django 1.7 migrate получает ошибку «таблица уже существует»

    ggplot legendends – изменить ярлыки, порядок и название

    Метод оценки математических выражений в Java

    Почему вызов метода в моем производном classе вызывает метод базового classа?

    Пользовательский пузырь выноски MKPinAnnotation похож на пузырь по умолчанию

    Вопрос о выходе facebook-ios-sdk

    Linux удаляет папки старше 1 года и более 3 файлов

    Какими способами запрещается записывать или читать файлы с символом правостороннего переопределения Unicode в их имени (метод подмены вредоносных программ)?

    Давайте будем гением компьютера.