【发布时间】:2013-04-12 18:53:56
【问题描述】:
我想创建一个允许用户将他们的图像上传到服务器的 Web 应用程序。当他们点击发送时,他们的图像将被上传到服务器(多部分)。在保存之前,我想对图像进行一些操作,所以我决定使用..
ImageIO.read(InputStream)
获取BufferedImage对象
代码如下:
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;
}
问题是当我尝试上传高度大于宽度的图片时,例如 3264 x 2448(高 x 宽),结果始终是经过旋转的图像 (2448 x 3264)。
有什么办法可以解决这个问题吗?
这是一个错误还是任何已定义的 API 规范?
谢谢。
PS。对不起我的英语:D
【问题讨论】:
-
我现在发现了类似的问题,stackoverflow.com/questions/9453367/…。所以,我的问题不是 ImageIO 的错误,而是 ImageIO 无法读取图像细节(EXIF 方向)的 API 规范。谢了。
标签: java image spring-mvc multipartform-data javax.imageio