Desidero creare un'applicazione Web che consenta agli utenti di caricare la propria immagine sul server. Quando fanno clic su invia, la loro immagine verrà caricata sul server (multipart). Prima di salvare, voglio fare alcune operazioni con l'immagine, così ho deciso di usare ..ImageIO.read() ruota sempre la mia immagine caricata
ImageIO.read (InputStream)
per ottenere BufferedImage oggetto
ecco il codice :
public static BufferedImage getBufferedImageFromMultipartFile(MultipartFile file)
throws APIException
{
BufferedImage bi = null;
try
{
bi = ImageIO.read(file.getInputStream());
}
catch (IOException e)
{
throw new APIException(ErrorCode.SERVER_ERROR, e);
}
return bi;
}
il problema è quando provo a caricare una foto che ha più di larghezza, come 3264 x 2448 (altezza x larghezza) l'altezza, il restituisce sempre un'immagine che è stata ruotata (2448 x 3264).
Esiste una soluzione per risolvere questo problema?
Si tratta di un bug o di una specifica API definita?
Thx.
PS. dispiace per il mio inglese: D
Ho trovato una domanda simile ora, http://stackoverflow.com/questions/9453367/is-javax-imageio-imageio-broken-it-imports-some-images-as-rotated?rq=1. Quindi, il mio problema non è un bug di ImageIO, ma è la specifica dell'API che ImageIO non può leggere i dettagli dell'immagine (orientamento EXIF). GRAZIE. –