當前位置: 首頁> 最新文章列表> PHP實現等比例壓縮圖片的方法與代碼示例

PHP實現等比例壓縮圖片的方法與代碼示例

gitbox 2025-08-07

概述

在現代網站開發中,優化圖片大小對於提升頁面加載速度和用戶體驗尤為重要。通過等比例壓縮技術,可以在保持圖片原有寬高比的前提下,有效減少圖片文件體積。本文將介紹如何利用PHP中的GD庫實現這一功能,並提供實用的代碼示例。

等比例壓縮的實現原理

等比例壓縮圖片的基本思路是:依據目標寬度(或高度),根據原始圖片的寬高比計算出對應的目標高度(或寬度),以保持圖片不變形。使用PHP的GD擴展可以方便地完成這一處理,包括讀取圖片信息、創建畫布、縮放並輸出圖片等步驟。

獲取原始圖片尺寸

第一步是通過getimagesize()函數讀取原始圖片的寬高:

 
$originalImagePath = 'path/to/original/image.jpg';
$originalImageSize = getimagesize($originalImagePath);
$originalWidth = $originalImageSize[0];
$originalHeight = $originalImageSize[1];

計算等比例壓縮的目標尺寸

以設定目標寬度為基礎,按照比例計算目標高度:

 
$targetWidth = 800;
$targetHeight = $originalHeight * ($targetWidth / $originalWidth);

創建圖片資源並執行壓縮

使用GD庫創建圖像資源並進行等比例壓縮處理:

 
$originalImage = imagecreatefromjpeg($originalImagePath);
$targetImage = imagecreatetruecolor($targetWidth, $targetHeight);

接下來,通過imagecopyresampled()函數進行圖片縮放操作:

 
imagecopyresampled(
  $targetImage,
  $originalImage,
  0, 0, 0, 0,
  $targetWidth, $targetHeight,
  $originalWidth, $originalHeight
);

最後將壓縮後的圖片保存到指定路徑:

 
$targetImagePath = 'path/to/target/image.jpg';
imagejpeg($targetImage, $targetImagePath, 80); // 壓縮質量設為80%

總結

通過本文所展示的步驟,開發者可以輕鬆在PHP中實現圖片的等比例壓縮,既能保障圖片質量,又能有效減少文件體積。此類處理尤其適用於需要優化前端性能的場景,如圖集展示、文章封面圖、商品圖片等。掌握這項技術將有助於提升網站整體性能表現。