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

PHP GD 圖像處理入門五例:字符繪製、橢圓弧、透明疊加、矩形邊框、基礎輸出

     編輯:PHP 相關知識

五個遞進式範例,快速掌握 GD 基礎

例 1:字符繪製與顏色分配

<?php
$im = imagecreatetruecolor(100, 100);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
$red   = imagecolorallocate($im, 255,0,0);
$str = 'N';
imagecharup($im, 6, 20, 20, $str, $white); // 向上繪字
imagechar($im, 2, 40, 40, 'R', $red);    // 水平繪字
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

例 2:橢圓弧(圓圈)

<?php
$im = imagecreatetruecolor(400, 400);
$white = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
imagearc($im, 200,200, 350,350, 0,360, $white); // 完整圓
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

例 3:三圓透明疊加(RGB 混色展示)

<?php
$size = 300;
$im = imagecreatetruecolor($size, $size);
$back = imagecolorallocate($im, 255,255,255);
$border = imagecolorallocate($im, 0,0,0);
imagefilledrectangle($im, 0,0, $size-1,$size-1, $back);
imagerectangle($im, 0,0, $size-1,$size-1, $border);

// Alpha 分配(75 = 約 70% 透明)
$yellow = imagecolorallocatealpha($im, 255,255,0, 75);
$red    = imagecolorallocatealpha($im, 255,0,0, 75);
$blue   = imagecolorallocatealpha($im, 0,0,255, 75);

imagefilledellipse($im, 100, 75, 150,150, $yellow);
imagefilledellipse($im, 120, 165, 150,150, $red);
imagefilledellipse($im, 187, 125, 150,150, $blue);

header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

例 4:左上角字串輸出

<?php
$im = imagecreate(100, 100); // 調色盤模式也可
$bg = imagecolorallocate($im, 255,255,255);
$black = imagecolorallocate($im, 0,0,0);
imagechar($im, 1, 0, 0, 'PHP', $black);
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>

例 5:基礎流程總結

  1. 建立畫布:imagecreatetruecolor(w,h)(推薦)或 imagecreate(w,h)
  2. 分配顏色:imagecolorallocate($im, r,g,b) 或 imagecolorallocatealpha($im, r,g,b, alpha)
  3. 繪圖:imagefill、imagestring、imageline、imagearc、imagefilledellipse 等
  4. 輸出:header('Content-Type: image/png') → imagepng($im)
  5. 釋放:imagedestroy($im)

常用繪圖函數速查

函數用途
imagesetpixel($im, x, y, $c)畫單一像素
imageline($im, x1,y1, x2,y2, $c)畫直線
imagerectangle($im, x1,y1, x2,y2, $c)畫矩形框
imagefilledrectangle($im, x1,y1, x2,y2, $c)填滿矩形
imagearc($im, cx,cy, w,h, s,e, $c)畫橢圓弧
imagefilledarc($im, cx,cy, w,h, s,e, $c, IMG_ARC_PIE)填滿扇形
imageellipse($im, cx,cy, w,h, $c)畫橢圓框
imagefilledellipse($im, cx,cy, w,h, $c)填滿橢圓
imagestring($im, font, x,y, str, $c)內建字體畫字
imagettftext($im, size, angle, x,y, $c, fontfile, str)TTF 字體畫字(支援中文)
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved