快轉到主要內容
  1. Posts/

圖片壓縮優化:提升網站速度與SEO

Python 圖片壓縮 網站優化 SEO Python PIL JPEG
目錄

在部落格或網站中,圖片是提升視覺效果和吸引讀者的重要元素。然而,大量未壓縮的圖片會對網站的載入速度和使用者體驗造成影響。這不僅會影響讀者的瀏覽體驗,還會影響 SEO 排名。為了改善這些問題,壓縮圖片是提升網站效能的有效方法。

為什麼要壓縮圖片?
#

  1. 提高頁面載入速度: 可以大幅度減少圖片的大小,加速頁面載入。
  2. 減少頻寬使用: 這對於流量有限的伺服器或使用者來說非常重要。
  3. 改善 SEO 排名: 如果網站載入緩慢,可能會影響 SEO 排名。透過圖片壓縮,能夠改善載入速度,間接提高網站的搜尋引擎排名。
  4. 提升行動裝置的體驗: 可以確保即使在行動裝置上,網頁仍能順暢地加載,提升使用者體驗。

實作圖片壓縮
#

以下是使用 Python 撰寫的程式碼,用於壓縮圖片並將其轉換為容量較小的 JPG 格式。

壓縮圖片的程式碼:

from PIL import Image
import os

def compress_image(image_path, output_folder, quality=80):
    """將圖片轉換為 JPG 格式並壓縮"""
    try:
        # 確保圖片存在
        if not os.path.isfile(image_path):
            raise FileNotFoundError(f"檔案不存在: {image_path}")

        # 顯示原始圖片的大小
        original_size = os.path.getsize(image_path) / 1024  # KB
        with Image.open(image_path) as img:
            # 如果原圖片是 PNG,將其轉換為 RGB 模式,因為 JPG 不支持透明背景
            if img.mode in ("RGBA", "LA", "P"):
                img = img.convert("RGB")

            # 生成壓縮後的圖片路徑
            jpg_filename = os.path.splitext(os.path.basename(image_path))[0] + "_compressed.jpg"
            output_path = os.path.join(output_folder, jpg_filename)

            # 儲存圖片並進行壓縮
            img.save(output_path, "JPEG", quality=quality, optimize=True)

            # 顯示壓縮後圖片的大小
            compressed_size = os.path.getsize(output_path) / 1024  # KB
            # 計算容量減少百分比
            size_reduction_percent = ((original_size - compressed_size) / original_size) * 100
            print(f"✨ 圖片壓縮成功: {image_path}({original_size:.2f} KB) -> {output_path}({compressed_size:.2f} KB),減少容量: {size_reduction_percent:.2f}%")

        return output_path

    except Exception as e:
        print(f"❌ 轉換失敗,錯誤: {e}")
        return None

程式碼說明
#

  1. 圖片格式轉換:如果圖片是 PNG 格式,將其轉換為 JPG 格式。因為 JPG 格式對於壓縮圖片效果更佳,且 JPG 不支援透明背景。
  2. 品質設定:使用 quality 參數來設定圖片的壓縮品質,範圍通常是 0 到 100。預設值為 80,這個值通常可以在圖片品質和文件大小之間達到良好的平衡。
  3. 圖片壓縮與儲存:儲存壓縮後的圖片,並利用 optimize=True 進一步最佳化圖片的儲存效果。
  4. 圖片大小顯示與比對:顯示原始圖片和壓縮後圖片的大小,並計算出壓縮後的容量減少百分比,讓你可以直接看到圖片壓縮效果。

結論
#

壓縮圖片不僅有助於提升網站的載入速度,還能改善使用者體驗並提高 SEO 排名。透過簡單的程式碼,可以輕鬆地對圖片進行壓縮,為部落格或網站最佳化圖片,確保網站快速、流暢地呈現給每一位訪問者。

Ernie
作者
Ernie

相關文章

GitHub Actions 自動化工作流程
DevOps GitHub Python GitHub Actions CI/CD Python 爬蟲 PTT Slack Automation
學習如何使用 GitHub Actions 自動化你的工作流程,包含設定、執行和最佳實務。
利用 Slack Webhook 建立自動化通知系統
Python Notification Webhook Slack Automation Slack Webhook Python Notification GitHub Actions
利用 Slack Webhook 建立自動化通知系統,提升團隊協作效率。
Python 虛擬環境設定:使用 virtualenv 與 VSCode
Python 開發環境 Python Virtualenv VSCode 虛擬環境 開發環境 套件管理 Pip
使用 virtualenv 與 VSCode 建立 Python 虛擬環境,提升開發效率。