Chcę utworzyć aplikację internetową, która pozwoli użytkownikom przesłać swój obraz na serwer. Kiedy klikną Wyślij, ich obraz zostanie przesłany na serwer (wieloczęściowy). Przed zapisaniem, chcę zrobić kilka operacji z obrazem, więc postanowiłem wykorzystać ..ImageIO.read() zawsze obraca moje przesłane zdjęcie
ImageIO.read (InputStream)
dostać BufferedImage obiekt
oto kod :
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;
}
problem jest, gdy próbuję załadować obraz, który ma wysokość większą niż szerokość, takich jak 3264 x 2448 (wysokość x szerokość), przy czym zawsze wyświetlać obraz, który został obrócony (2448 x 3264).
Czy istnieje rozwiązanie tego problemu?
Czy to błąd, czy jakakolwiek zdefiniowana specyfikacja interfejsu API?
Thx.
PS. Przepraszam za mój angielski: D
Znalazłem podobne pytanie już teraz, http://stackoverflow.com/questions/9453367/is-javax-imageio-imageio-broken-it-imports-some-images-as-rotated?rq=1. Tak więc, moim problemem nie jest błąd w ImageIO, ale jest to specyfikacja API, że ImageIO nie może odczytać szczegółów obrazu (orientacja EXIF). DZIĘKI. –