使用GD2函數繪製幾何圖形(PHP圖形影像的典型應用教學4)

黄舟
發布: 2023-03-07 16:16:02
原創
2105 人瀏覽過

使用GD2函數繪製幾何圖形(PHP圖形圖像的典型應用教程4)

本篇主要講解使用GD2函數實現幾何圖形的繪製,首先我們需要的事創建一個圖像,在之前的文章中我們就說過了,創建圖像是所有圖像操作的第一步,然後再背景上根據坐標點繪製圖形輪廓,最後輸出圖形!

那麼我們在上一篇《使用影像處理技術產生驗證碼(PHP圖形影像的典型應用教學3)》中介紹如何產生驗證碼,不知道小夥伴們有沒有掌握這個知識點呢,還沒有熟悉的夥伴可以回顧一下!今天我們來講解繪製幾何圖形!

本文技術重點:

在本文中主要使用GD2函數來繪製幾何圖形,其中部分函數在前面的文章中已經進行了詳細的介紹,下面我們對常用的函數進行介紹:

(1) imagecreatetruecolor()函數

該函數用於建議一個全彩的圖片文件資源,函數的語法格式如下:

int imagecreatetruecolor(int x_size,int y_size);
登入後複製

參數x_size和y_size分別為影像的寬,高尺寸,單位為像素(px)。

(2)imagecolorallocate()函數

該函數用於匹配指定圖像的顏色,以供其他繪圖函數適用,該語法格式如下:

int imagecolorallocate(int im, int red, int green, int blue);
登入後複製

參數im 表示影像的handle;參數red,green,blue是彩色RGB三原色,其值是從0至255的整數或十六進位的0x00~0xff。該函數必須被調用,以創建每一種用在 image 所代表的圖像中的顏色。

(3)imagefilledarc()函數

該函數用於繪製一個橢圓並填充,該函數的語法格式如下:

int imagefilledarc(im, int cx , int w, int h, int s, int e, int color, int style);
登入後複製

在im所代表的圖像中以cx,cy(圖像左上角為0, 0)為圓心畫一個橢圓弧。如果成功則回傳  true,失敗則回傳 false。 w 和 h分別指定了橢圓的寬和高,s 和  e 參數以角度指定了起始點和結束點,color代表填滿的顏色值。

style 可以是下列值位元或(OR)後的值:

  • IMG_ARC_PIE

  • IMG_ARC_CHORD

  • IMG_ARC_NOFILL

  • IMG_ARC_EDGED

IMG_ARC_PIE 和IMG_ARC_CHORD 是互斥的;IMG_ARC_CHORD 只是用直線連接了起直線始和結束點,IMG_ARC_PIE 則產生圓形邊界(如果兩個都使用,IMG_ARC_CHORD生效)。 IMG_ARC_NOFILL 指明弧或弦只有輪廓,不填滿。 IMG_ARC_EDGED 指明用直線將起始和結束點與中心點相連,和 IMG_ARC_NOFILL 一起使用是畫餅狀圖輪廓的好方法(而不用填滿)。

(4)imagefilledrectangle()函數

#該函數用於繪製一個填滿了的矩形,該函數的語法格式如下:

bool imagefilledrectangle ( resource $image , int $x1 , int $y1 , int $x2 , int $y2 , int$color )
登入後複製

#此函數將圖片的封閉長方形區域著色,參數x1,y1以及x2,y2分別為矩形對角線的座標,參數col表示欲塗上的顏色;

(5)imagedestroy( )函數

該函數用於刪除圖形,釋放記憶體空間,語法格式如下:

int imagedestroy(int im);
登入後複製

參數im 為imagecreate()函數,imagecreatetruecolor()函數所建立的圖形!

我們現在來看看如何實作繪製幾何圖形:

#實作過程具體程式碼如下:

<?php
header(&#39;Content-type: image/png&#39;);// 告诉浏览器,这个文件,是一个png图片
$img = imagecreatetruecolor(260, 200);//创建一个400X200的画布
$green = imagecolorallocate($img, 20, 145, 40);//定义一个绿颜色
$darkgreen = imagecolorallocate($img, 25, 80, 25);//定义一个深绿颜色
$blue = imagecolorallocate($img, 0, 225, 205);//定义一个蓝颜色
$darkblue = imagecolorallocate($img, 10, 180, 200);//定义一个深蓝颜色
$red = imagecolorallocate($img, 255, 0, 0);//定义一个红颜色
$bluered = imagecolorallocate($img, 202, 10, 0);//定义一个深红颜色
for($i = 110; $i > 100 ; $i--){
    imagefilledarc($img,130,$i,150,100,0,95,$darkgreen,IMG_ARC_PIE);
    imagefilledarc($img,130,$i,150,100,95,125,$darkblue,IMG_ARC_PIE);
    imagefilledarc($img,130,$i,150,100,120,360,$bluered,IMG_ARC_PIE);
}
imagefilledarc($img,130,$i,150,100,0,95,$green,IMG_ARC_PIE);
imagefilledarc($img,130,$i,150,100,95,125,$blue,IMG_ARC_PIE);
imagefilledarc($img,130,$i,150,100,120,360,$red,IMG_ARC_PIE);
imagepng($img);//以png格式输出图像
imagedestroy($img);//释放资源
?>
登入後複製

輸出結果如下:

使用GD2函數繪製幾何圖形(PHP圖形影像的典型應用教學4)

使用GD2函數繪製幾何圖形,我們到這裡就介紹完了,相信小夥伴們都可以掌握此項功能,那麼我們下面繼續介紹關於圖像的如何在圖表中添加行和列標籤,具體請閱讀《使用GD2函數向圖表中添加行和列標籤(PHP圖形圖像的典型應用教程5)》!

以上是使用GD2函數繪製幾何圖形(PHP圖形影像的典型應用教學4)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!