最近项目需要在本地存储图片的同时生成缩略图,使用了Spring提供的Thumbnailator类库。
添加maven依赖
<dependency>
<groupId>net.coobird</groupId>
<artifactId>thumbnailator</artifactId>
<version>0.4.7</version>
<scope>compile</scope>
</dependency>
按照指定比例压缩原图
原图片传参的形式为MultipartFile file,对应的输入流为file.getInputStream(),生成缩略图即是获取原图指定压缩比例后的输入流,然后进行相关的操作
InputStream inputStream = file.getInputStream();
//0.1f指定比例压缩图片(压缩比例自己调节0~1之间均可)
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
Thumbnails.of(inputStream).scale(0.1f).toOutputStream(byteArrayOutputStream);
//现在获取到的是缩略图的输入流
inputStream = new ByteArrayInputStream(byteArrayOutputStream.toByteArray());