Tôi muốn tạo một ứng dụng web cho phép người dùng tải hình ảnh của họ lên máy chủ. Khi họ nhấp gửi, hình ảnh của họ sẽ được tải lên máy chủ (nhiều phần). Trước khi lưu, tôi muốn thực hiện một số hoạt động với hình ảnh, vì vậy tôi quyết định sử dụng ..ImageIO.read() luôn xoay hình ảnh đã tải lên của tôi
ImageIO.read (InputStream)
để có được BufferedImage đối tượng
đây là mã :
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;
}
vấn đề là khi tôi cố gắng để tải lên một bức tranh có chiều cao hơn chiều rộng như 3264 x 2448 (chiều cao x chiều rộng), các kết quả luôn là hình ảnh đã được xoay (2448 x 3264).
Có giải pháp nào để giải quyết vấn đề này không?
Đây có phải là lỗi hoặc bất kỳ thông số API được xác định nào không?
Thx.
PS. xin lỗi cho tiếng anh của tôi: D
Tôi đã tìm thấy câu hỏi tương tự ngay bây giờ, http://stackoverflow.com/questions/9453367/is-javax-imageio-imageio-broken-it-imports-some-images-as-rotated?rq=1. Vì vậy, vấn đề của tôi không phải là một lỗi của ImageIO nhưng nó là đặc tả API mà ImageIO không thể đọc được chi tiết hình ảnh (định dạng EXIF). CÁM ƠN. –