Image Resizer是一款能夠一次調整多張圖片的尺寸的指令工具。它在調整圖片尺寸時,並不需要完全地指定圖片的寬(Width)與高(Height)為多少,只需要設定一條最大邊的長度,就能自動延展或是收縮圖片的寬和高,還能自動將圖片銳利化與交錯化(interlacing),也能夠順便調整圖片的PPI(pixel per inch)。



舉例來說,現在有三張圖,尺寸分別為4000x3000、3000x2100、1000x1000的圖,使用Image Resizer時可以直接限定最大邊的長度,也能設定是否只將圖片縮小而不放大。若將最大長度設為2000,且只能縮小圖片的話,則這三張圖經過Image Resizer轉換之後,尺寸分別變為2000x1500、2000x1400、1000x1000。相同地,如果有三張圖尺寸分別是3000x4000、2100x3000、1000x1000,則這三張圖經過Image Resizer轉換之後,尺寸分別變為1500x2000、1400x2000、1000x1000。使用者完全不用知道圖片的寬和高哪個比較長,也不需要知道它們到底有沒有超過我們所設定的最大邊之長度,程式就會自動處理。而且可以一次支援一整個目錄下,甚至是其所有子目錄內的圖片檔案。

Image Resizer支援JPEG、PNG、BMP、TIFF、GIF、WEBP等常見的圖片格式,可以設定輸出圖片的品質(對如JPEG等有損壓縮的格式有效),控管輸出的檔案大小。如果是珍貴的照片,品質建議使用90 ~ 95;如果不是的話,在一般情況下,品質設定為75 ~ 90就很夠用了。

Image Resizer

「Image Resizer」是筆者用Rust程式語言開發,可以將單張或是多張JPG、PNG、GIF、TIFF、WEBP等常見格式的圖片進行縮放的開源小工具。

安裝Image Resizer

如果系統環境中有安裝「Cargo」的話,可以直接使用以下指令來下載「Image Resizer」的原始碼專案,並進行編譯安裝。

cargo install image-resizer

如果是使用Linux作業系統的話,可以直接到以下頁面取得「Image Resizer」的執行檔,手動放置到「/usr/local/bin」目錄中即可。網址如下:

使用Image Resizer

Image Resizer最基本的使用方式就是在image-resizer指令後的第一個參數直接加上JPG、PNG、GIF等圖片的檔案路徑或是目錄路徑,再用-m參數後接上圖片要限定的最大邊長度。如下:

image-resizer /path/to/image -m 1920

由於GIF還牽扯到會動的和不會動的圖片,Image Resizer預設不會將GIF圖片縮放。如果要處理GIF圖片的話,需加上--allow-gif參數。如下:

image-resizer --allow-gif /path/to/image -m 1920

另外,Image Resizer預設會把原始圖檔直接縮放,如果要指定別的路徑來儲存縮放後的圖檔,需加上-o參數,再接上輸出的檔案路徑或是目錄路徑。如下:

image-resizer /path/to/input-image -m 1920 -o /path/to/output-image

若還想要讓Image Resizer能夠直接覆蓋掉已存在的檔案,可以加上-f參數。如下:

image-resizer /path/to/input-image -m 1920 -o /path/to/output-image -f

-q參數可以控制有損壓縮圖片格式的品質,其後面接的數值範圍是0 ~ 100,數值愈高品質愈高。用法如下:

image-resizer /path/to/input-image -m 1920 -o /path/to/output-image -f -q 80

--ppi參數調整輸出圖片內的PPI資訊,其後面接的數值需要大於0。用法如下:

image-resizer /path/to/input-image -m 1920 -o /path/to/output-image -f -q 80 --ppi 150

再來,Image Resizer預設會把有經過處理的圖片中的不重要的訊息抹除掉,如果想要保留的話,可以加上--remain-profile參數。

Image Resizer預設也會自動根據圖片的縮放程度,來決定要對其進行多少程度的銳化,如果想關閉銳化功能,可以加上--no-sharpen參數。

如果您只想要縮圖,而不想讓原本小張的圖片放大的話,可以加上--shrink參數。

如果您想要把Image Resizer用於Web應用程式的話,可以加上-s參數來讓Image Resizer只使用單執行緒來處理圖片。

實際縮圖

即使把圖片的最大邊長縮到了600,畫質看起來也依然不錯呢!圖片如下:

image-resizer

image-resizer

image-resizer

按此下載圖片原始檔