1. 程式人生 > >使用thumbnailator不按照比例,改變圖片的大小

使用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

本文出自部落格園,歡迎大家加入部落格園。