Проект Image Magick имеет средства для идентификации изображения, и есть Java-оболочка для Image Magick под названием JMagick, которую, я думаю, вы, возможно, захотите рассмотреть вместо того, чтобы заново изобретать колесо:
http://www.jmagick.org
Я все время использую Image Magick, включая функцию «идентифицировать» из командной строки, и мне никогда не удавалось идентифицировать изображение.
В те времена, когда мне абсолютно требовалась эта функция, и JMagick не делал этого.еще не существовало. Я использовал команду Runtime.exec()
ImageMagick identify
из Java, и она отлично работала.
В настоящее время, когда существует JMagick, это, вероятно, больше не требуется (но я еще не пробовал JMagick).
Обратите внимание, что он дает гораздо больше, чем просто формат, например:
$ identify tmp3.jpg
tmp3.jpg JPEG 1680x1050 1680x1050+0+0 DirectClass 8-bit 293.582kb
$ identify tmp.png
tmp.png PNG 1012x900 1012x900+0+0 DirectClass 8-bit 475.119kb