使用thumbnailator不按照比例,改變圖片的大小


我們在平時的開發中,偶爾也會遇到圖片處理的問題,比如圖片的壓縮,按比例改變圖片的大小,不按比例改變圖片的大小等等。

如果要自己去開發這樣一套工具,我覺得大多數人都是做不到的,所以還是學會站在巨人的肩膀上來的比較輕巧。

 

所以在這里給大家推薦google使用的開源工具包thumbnailator,這個工具包可以滿足各種各樣的圖片處理要求,除了上面說的還包括旋轉,裁切,加水印等等。

而且圖片處理過后能保持不錯的質量,圖片處理性能也ok,代碼也比較容易使用,多用用就熟悉了。

 

這里給大家舉一下不按照比例改變圖片的大小的代碼的例子,大家在以后遇到圖片處理問題的時候可以舉一反三去完善這個圖片處理工具類。

 

在maven中依賴此工具包:

1 <!-- 圖片處理工具 -->
2         <dependency>
3             <groupId>net.coobird</groupId>
4             <artifactId>thumbnailator</artifactId>
5             <version>0.4.6</version>
6         </dependency>

 

寫一個公共的圖片處理工具類:

 1 package com.cfwx.weixin.common.utils;
 2 
 3 import java.io.IOException;
 4 
 5 import net.coobird.thumbnailator.Thumbnails;
 6 
 7 /**
 8  * 圖片處理工具類
 9  * 
10  * @author lixiao
11  * @version 1.0
12  * @date 2018/04/18
13  */
14 public class PictureUtil
15 {
16 
17     /**
18      * 私有化工具類對象
19      */
20     private PictureUtil()
21     {
22     }
23 
24     /**
25      * 不按照比例,指定大小進行縮放
26      * 
27      * @param inFilepath
28      * @param width
29      * @param height
30      * @param outFilepath
31      * @throws IOException
32      */
33     public static void keepAspectRatioFalse(String inFilepath, int width, int height, String outFilepath) throws IOException
34     {
35         Thumbnails.of(inFilepath).size(width, height).keepAspectRatio(false).toFile(outFilepath);
36     }
37 
38 }

將構造函數私有化可以避免創建此工具類的對象,這樣就只能通過類名調用此工具類的靜態方法,我們這里封裝了一個不按照比例,指定大小進行縮放的方法,inFilePath是指原圖片保存的路徑,在項目中一般使用臨時文件,業務處理結束后,一般會將臨時文件刪除,避免暫用項目空間,造成項目臃腫,width寬度,height高度,outFilepath為輸出圖片保存路徑,同理此文件根據情況也可以作為臨時文件,比如前端要下載指定大小的圖片,那么后端處理結束后需要將之前處理的圖片刪除,避免造成項目臃腫。

 

Thumbnails類的of方法指定原圖片路徑,size方法指定圖片的大小,keepAspectRatio指定是否按照比例縮放,toFile方法用來輸出處理后的圖片到指定路徑。

 

thumbnailator工具包中還有很多方法來實現各種各樣的圖片處理,這里就不給大家一一列舉,大家自己把thumbnailator工具包下載下來,結合相關的api資料去完善自己的圖片處理工具類,然后去玩一玩圖片的各種處理。

 

結束語:知識是一種使求知者吃得越多越覺得餓的糧食。

 

可愛博主:AlanLee

博客地址:http://www.cnblogs.com/AlanLee

本文出自博客園,歡迎大家加入博客園。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM