解决Thunbnailator在缩放时出现对图片旋转的问题

Thumbnailator是一个很小巧的图片处理工具,具体使用的时候会发现,处理一些图片的时候会出现图片旋转了。

以下是解决方法,不使用他自带的size参数。

String imgPath = "C:\\Users\\Public\\Pictures\\1.jpg";
BufferedImage bi = ImageIO.read(new File(imgPath));
if (Float.valueOf(bi.getWidth()) / Float.valueOf(bi.getHeight()) > 1) {
    bi = Thumbnails.of(bi).height(300).asBufferedImage();
} else {
    bi = Thumbnails.of(bi).width(300).asBufferedImage();
}
if (bi.getWidth() - 300 > 0) {
    int x = (bi.getWidth() - 300) / 2;
    bi = Thumbnails.of(bi).scale(1f).sourceRegion(x, 0, 300, 300).asBufferedImage();
} else {
bi = Thumbnails.of(bi).scale(1f).sourceRegion(0, 0, 300, 300).asBufferedImage();
}
Thumbnails.of(bi).scale(1f).toFile("C:\\Users\\Public\\Pictures\\2.jpg");

原图:

解决Thunbnailator在缩放时出现对图片旋转的问题_第1张图片

等比例并裁剪后等到300x300的缩略图

解决Thunbnailator在缩放时出现对图片旋转的问题_第2张图片

你可能感兴趣的:(Thunbnailator)