最近接到个需求,前端传入一个网络路径,需要生成缩略图后一同写入数据库
此次采用了Thumbnailator
先引入依赖
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.8</version>
</dependency>
看了一些解决方案都是new File()读取本地图片后再生成缩略图,并不符合需求
翻看源码发现Thumbnailator支持BufferedImage格式
于是有了新的想法如下
public static void main(String[] args) {
try {
URL url = new URL("https://www.keaidian.com/uploads/allimg/190424/24110307_8.jpg");
BufferedImage image = ImageIO.read(url);
Thumbnails.of(image).size(80, 80).toFile("G:\\suoluetu1.jpg");
} catch (IOException e) {
e.printStackTrace();
}
}
执行后发现是可行的
原图
缩略图