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");
原图:
等比例并裁剪后等到300x300的缩略图