Ok ho un'immagine che sto cercando di leggere. Il problema è che Image.read (file) restituisce NULL.Problema con ImageIO.read
File file = new File("C:\\images\\image1.jpg");
if(file.exists()){
System.out.println("Image file exists.");
BufferedImage originalImage = ImageIO.read(file);
}
Quindi l'immagine esiste ma ImageIO.read (file) restituisce NULL. Nessun errore generato niente !!! Cosa sta succedendo?
Questo è quello che ho provato finora:
- Ok il mio ambiente è Windows 7. testato con una di quelle immagini che viene fornito con Windows e il suo grado di leggere l'immagine.
- L'immagine1.jpg è stata creata da un altro sistema. Ora sicuro di quale metodo si sta utilizzando .
- Ho provato a convertire l'immagine in RGB come suggerito qui link text ma non riesce con "Non un file JPEG: inizia con 0x4d 0x4d".
- L'estensione dell'immagine è .jpg, ma le finestre sono di tipo JPEG? Questo è confuso.
Qualcuno può aiutare con questo? Sono nuovo di questo, non sono sicuro di come sistemarlo.
Ok ho appena capito che ImageIO.getImageReaders (stream) restituisce un Iterator vuoto. Ciò significa che non è stato possibile trovare un lettore adatto? Come dovrei leggere questa immagine?
Poiché i tag includono "applet", ho pensato di dire che, a meno che non stiate scrivendo un'applet che serve a caricare le immagini dai dischi dell'utente finale, probabilmente vi troverete dopo un URL. Ulteriori commenti, Windows ha probabilmente una grande quantità di "magia" integrata per gestire immagini non valide. Potrebbe pagare per aprire il JPG in un editor di immagini affidabile e salvarlo come un nuovo file.Questo potrebbe correggere il problema (supponendo che sia un'immagine non valida). –
E a cosa servono quei doppi tagli? – EJP