Python Pillow 教學

Author: Kelvin Huang

Pillow 主要用於圖片讀取、影像處理、輸出的工具,可以把 Pillow 想成是 Photoshop 般的工具,能對圖片做各種編輯。

Pillow 主要功能清單 :

功能 效果 備註
載入 / 儲存 支援影像格式(JPG / PNG / GIF / BMP / TIFF / WebP 等) Pillow 支援多種影像格式
圖像基本屬性 取得尺寸 (Size)、格式 (Format)、模式 (Mode) img.size, img.format, img.mode
色彩空間轉換 模式轉換(例如 RGB 轉灰階 / RGBA / CMYK) im.convert("L") 等
影像調整 Resize (縮放) / Rotate (旋轉) / Transpose (翻轉、旋轉) / Crop (裁切) / Paste (貼上) im.resize(), im.rotate(), im.transpose(), im.crop(), im.paste()
影像混合 Blend (線性混合) / Composite (依遮罩結合) / Alpha_composite (alpha 混合) Image.blend(), Image.composite(), Image.alpha_composite()
影像增強 對比度 (Contrast) / 亮度 (Brightness) / 顏色 (Color) / 銳利度 (Sharpness) 使用 ImageEnhance 模組,例如 ImageEnhance.Contrast(im).enhance(factor)
濾鏡效果 模糊 (Blur) / 銳化 (Sharpen) / 細節 (Detail) / 輪廓 (Edge_Enhance) / Emboss / Smooth / 等 使用 ImageFilter 模組與 im.filter(...)
序列動畫 支援多影格圖像 (如 GIF) 、開啟多幀 (seek / tell)、儲存動畫 (save_all 等參數) ImageSequence, save(..., save_all=True, append_images=…)
新建畫布 Image.new() 創建指定模式與大小的空白影像 Image.new(mode, size, color)

Pillow 主頁 [ https://pillow.readthedocs.io/ ]

Pillow Tutorial [ https://pillow.readthedocs.io/en/stable/handbook/tutorial.html ]

Pillow Image 模組參考 (API) [ https://pillow.readthedocs.io/en/stable/reference/Image.html ]

 

Python Pillow 使用範例

一、程式目的(ImageDownloader)

此範例是一個使用 Tkinter + Requests + Pillow 撰寫的工具,讓使用者在貼上圖片網址,按下 開始下載 按鈕,將會先

下載圖片並轉存為 PNG 檔案,再使用 Pillow 產生特定尺寸的縮圖,並加上邊框,每次執行將會儲存兩個檔案:

原始PNG:{title}.png / OK縮圖:OK-{title}.png

視窗下方會顯示處理狀態,處理完會自動清空輸入框。

 

二、使用的主要套件

Tkinter / ttk:建立 GUI(文字輸入框、按鈕、進度條、狀態列、log 區)

threading + queue : 把下載與圖片處理放到背景執行緒,避免 UI 卡住;再用 queue 把訊息安全地丟回 UI 更新

requests:用 HTTP 下載網址內容(圖片)

Pillow:讀取圖片、轉換色彩模式、輸出 PNG、製作縮圖與加邊框

os / re / urlparse:處理路徑、建立資料夾、檔名安全化、從 URL 取檔名

注意!第一次執行時

C:\Users\使用者名稱\PycharmProjects\ImageDownloader\.venv\Scripts\python.exe
C:\Users\使用者名稱\PycharmProjects\ImageDownloader\ImageDownloader.py
Traceback (most recent call last):
File "C:\Users\XXX\PycharmProjects\ImageDownloader\ImageDownloader.py", line 11, in <module>
import requests
ModuleNotFoundError: No module named 'requests'

請按下 import requests 匯入 requests 模組,再次執行。

C:\Users\使用者名稱\PycharmProjects\ImageDownloader\.venv\Scripts\python.exe
C:\Users\使用者名稱\PycharmProjects\ImageDownloader\ImageDownloader.py
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\ImageDownloader\ImageDownloader.py", line 12, in <module>
from PIL import Image, ImageOps
ModuleNotFoundError: Install Package No module named 'PIL'

請再按下 Install Package 安裝 PIL 模組。

 

Python Pillow 範例原始碼

v0.1 [ ImageDownloader.py ] [ ImageDownloader.txt ] - 初始版

v0.2 [ ImageDownloader.py ] [ ImageDownloader.txt ] - 深色主題,修正儲存圖片的檔名問題

 

Copyright © 2026 CG Digital Corp. All rights reserved.