用thumbnailator库生成缩略图。github链接
功能很强大,生成的缩略图不会拉伸变形,也不用担心原图小于指定尺寸的情况,会自动按比例放大之后再裁剪。
1. 库安装
直接用maven添加库依赖,将以下代码加入pom.xml文件中就能用啦。
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>[0.4, 0.5)</version>
</dependency>
2. 读取图片并生成缩略图
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.Raster;
import java.net.URL;
import javax.imageio.ImageIO;
import java.io.File;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.lang.StringUtils;
public class ImageUtil {
/**
*
* @param image 用imageio读取的图片
* @param width 缩略图的目标宽度
* @param height 缩略图的目标高度
* @param save_file 保存图片的路径
* @return 无返回
*/
public static void thumbnail(BufferedImage image, int width, int height, String save_file) {
try {
Thumbnails.of(image)
.crop(Positions.CENTER)//从图片中心截取缩略图
.size(width, height)
.toFile(save_file);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
try {
//读取图片
File input = new File("/Users/wuxinyue/XXamPFXa.png");
BufferedImage bimg = ImageIO.read(input);//读取本地图片
//BufferedImage bimg = ImageIO.read(new URL("http://img.alicdn.com/tfs/TB1kbMoUOLaK1RjSZFxXXamPFXa.png"));//读取url图片
//生成缩略图并保存
String save_file = "/Users/wuxinyue/XXamPFXa_thumb.png";
ImageUtil.thumbnail(bimg, 128, 128, save_file);
} catch (Exception e) {
}
}
}
来源:CSDN
作者:adrianna_xy
链接:https://blog.csdn.net/u012223913/article/details/103482222