Il progetto Magick immagine dispone di strutture per identificare immagini e c'è un wrapper Java per ImageMagick chiamato JMagick che credo si può prendere in considerazione, invece di reinventare la ruota:
http://www.jmagick.org
sto usando ImageMagick tutto il tempo, compresa la sua funzione di "identificare" dalla riga di comando e non è mai fallito una volta per identificare una foto.
Indietro nei giorni in cui avevo assolutamente bisogno di quella funzione e JMagick non esisteva ancora mi sono abituato a Runtime.exec()
il comando di ImageMagick identify
da Java e ha funzionato perfettamente.
Oggigiorno che JMagick esiste, probabilmente non è più necessario (ma non ho ancora provato JMagick).
Nota che dà molto di più che il formato, ad esempio:
$ 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
Forse usando 'ImageIcon.getIconWidth()' direttamente potrebbe anche funzionare? Ritorna, almeno, '-1' se l'immagine non è stata caricata correttamente. – Pooven