2012-07-03 2 views
19

Учитывая некоторый исходный файл (или более общий - входной поток), мне нужно, чтобы узнатьImageIO - получить тип изображения и EXIF ​​данные

  • является это изображение
  • , если это изображение, а затем получить его тип (PNG/JPEG/GIF/и т.д.)
  • извлечения данных EXIF, если таковые имеются

Я посмотрел на API, но не ясно, как получить тип изображения или данные Exif.

+0

Чтобы получить тип, просто посмотрите на расширение файла. – user1329572

+2

Расширение файла никогда не является гарантией типа файла. Ничто не может помешать кому-либо незаконно переименовать файл. –

ответ

22

Последний раз, когда я должен был это сделать, пару лет назад стандартный API не смог прочитать данные EXIF. Эта библиотека может сделать так, хотя:

http://www.drewnoakes.com/code/exif/

+0

Кажется, что этот продукт является метадатчиком-экстрактором, предложенным матовыми ожогами ниже – Panayotis

12

Легкий ответ: Использование https://github.com/drewnoakes/metadata-extractor/

Если вы с ума/Brave/любопытным, вы можете получить тип изображения, из потока, прочитав первые несколько байт (это magic numbers). Я считаю, что exif также находится в начале потока.

6

Это старая тема, но я делал это недавно и нашел полезную библиотеку Apache Tika. В частности, для анализа генерических потоков для определения того, что в них содержится.

Думал, что это может помочь другим.

http://tika.apache.org/

+5

. Обратите внимание, что Tika использует экстрактор метаданных под капотом :). –

 Смежные вопросы

  • Нет связанных вопросов^_^