天天看點

使用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());