首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 動態圖像建立完整指南:從 GD 庫安裝到實戰範例

     編輯:PHP 相關知識

前言

PHP 建立動態圖像並不複雜,只要正確配置環境並掌握核心函式,即可輕鬆產生圖表、驗證碼、縮圖等應用。本文將詳細說明 GD 庫的安裝步驟、基本繪圖流程,並提供建立純色圖片與縮圖的完整程式碼範例。

一、環境準備:安裝必要函式庫

在使用 GD 繪圖函式前,必須先安裝以下三個元件,且須嚴格遵循順序:

  1. t1lib:支援 Type 1 字型。
  2. jpeg-6b:提供 JPEG 格式處理能力。
  3. GD 庫:核心繪圖庫,編譯時會依賴 jpeg-6b。

安裝完成後,需重新編譯 PHP。若採用 DSO 模式安裝,執行 make clean 後,在 configure 參數中加入:

--with-gd=[/path/to/gd]
--with-jpeg-dir=[/path/to/jpeg-6b]
--with-t1lib=[/path/to/t1lib]

接著執行 make 和 make install,重啟 Apache,透過 phpinfo() 確認 GD 區塊已啟用。

二、GD 版本與圖片格式支援

  • GD 1.6 或更早版本:支援 GIF,不支援 PNG。
  • GD 1.6 之後版本:支援 PNG,不支援 GIF(因授權問題)。

三、建立第一張動態圖片:純色 PNG

以下範例建立一張 250×250 像素的天藍色 PNG 圖片:

<?php
// 1. 送出正確的 MIME 標頭
header('Content-Type: image/png');

// 2. 建立空白畫布
$newImg = imagecreate(250, 250);

// 3. 分配顏色 (RGB: 136, 193, 255)
$skyblue = imagecolorallocate($newImg, 136, 193, 255);

// 4. 填滿背景
imagefill($newImg, 0, 0, $skyblue);

// 5. 輸出圖片並釋放資源
imagepng($newImg);
imagedestroy($newImg);
?>

將上述程式碼存為 skyblue.php,瀏覽器訪問即可看到天藍色方塊。

四、進階應用:建立縮圖

利用 imagecopyresized() 將大圖縮放為 35×35 的縮圖:

<?php
header('Content-Type: image/png');

$newWidth  = 35;
$newHeight = 35;

// 建立目標空白圖
$newImg = imagecreate($newWidth, $newHeight);

// 載入原始圖 (假設為 test.png)
$origImg = imagecreatefrompng('test.png');

// 執行縮放複製
imagecopyresized(
    $newImg, $origImg,
    0, 0, 0, 0,
    $newWidth, $newHeight,
    imagesx($origImg), imagesy($origImg)
);

// 輸出並清理
imagepng($newImg);
imagedestroy($newImg);
imagedestroy($origImg);
?>

儲存為 resized.php 並訪問,即可獲得縮放後的 PNG 圖片。

五、小結

掌握 GD 庫的安裝順序、基本繪圖流程(建立畫布→分配顏色→繪製→輸出→釋放)以及 imagecopyresized() 縮圖技巧,即可滿足大多數動態圖像需求。後續可進一步學習 TrueType 字型繪製、多邊形繪圖、漸層填充等進階功能。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved