天天看点

使用Thumbnailator类库等比例生成缩略图

最近项目需要在本地存储图片的同时生成缩略图,使用了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());