Python 圖片壓縮 (Pillow) | Python

在開發網站或應用程式時,圖片壓縮是一個重要的步驟,可以幫助提高網頁載入速度,節省流量,並改善用戶體驗。我們將介紹如何使用 Python 進行圖片壓縮,並提供一個簡單的範例。

首先,我們需要安裝一個 Python 庫,用於處理圖片。我們可以使用 Pillow 庫,這是 Python Imaging Library(PIL)的一個分支,支援更多的功能。

pip install Pillow

使用 Pillow 庫進行圖片壓縮

下面是一個簡單的 Python 程序,使用 Pillow 庫進行圖片壓縮。在這個範例中,我們將壓縮指定目錄中的所有圖片。

from PIL import Image
import os

def compress_images(input_dir, output_dir, quality=85):
    """
    將輸入目錄中的所有圖片進行壓縮,並保存到輸出目錄。
    
    Parameters:
        input_dir (str): 輸入目錄的路徑。
        output_dir (str): 輸出目錄的路徑。
        quality (int): 壓縮的品質,範圍是 0 到 100,數值越高品質越好。
    """
    if not os.path.exists(output_dir):
        os.makedirs(output_dir)

    for filename in os.listdir(input_dir):
        if filename.endswith(('.png', '.jpg', '.jpeg')):
            input_path = os.path.join(input_dir, filename)
            output_path = os.path.join(output_dir, filename)
            
            # 開啟圖片
            img = Image.open(input_path)
            # 長寬都減至50%
            width, height = img.size
            new_size = (width//2, height//2)
            resized_image = img.resize(new_size)
            # 進行壓縮
            resized_image.save(output_path, quality=quality)
            
            print(f'{filename} 已壓縮並保存到 {output_dir}')

# 指定輸入和輸出目錄
input_directory = '輸入目錄的路徑'
output_directory = '輸出目錄的路徑'

# 調用函數進行圖片壓縮
compress_images(input_directory, output_directory)

請將上述程式碼中的 輸入目錄的路徑輸出目錄的路徑 替換為你實際的目錄路徑。這個程式會尋找輸入目錄中的所有圖片文件(png、jpg、jpeg 格式),壓縮它們,並將壓縮後的圖片保存到輸出目錄。

你可以根據需要調整 quality 參數,以平衡圖片品質和檔案大小。該參數的值在 0 到 100 之間,數值越高品質越好,但檔案大小也越大。

這是一個簡單而有效的方法,可以在網站或應用程式中優化圖片,或是製作出lazy loading image。希望這個教學對你有所幫助!