13.1.3 繪制各種圖形

13.1.3 繪制各種圖形

imagefill -- 區域填充
語法:bool imagefill(resource image,int x,int y, int color)
imagefill() 在 image 圖像的坐標 x,y(圖像左上角為 0, 0)處用 color 顏色執行區域填充(即與 x, y 點顏色相同且相鄰的點都會被填充)。
imagesetpixel -- 畫一個單一像素
語法:bool imagesetpixel ( resource image, int x, int y, int color )
imagesetpixel() 在 image 圖像中用 color 顏色在 x,y 坐標(圖像左上角為 0,0)上畫一個點。
imageline -- 畫一條線段
語法:bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )
imageline() 用 color 顏色在圖像 image 中從坐標 x1,y1 到 x2,y2(圖像左上角為 0, 0)畫一條線段。

imagerectangle -- 畫一個矩形
語法:bool imagerectangle ( resource image, int x1, int y1, int x2, int y2, int col )
imagerectangle() 用 col 顏色在 image 圖像中畫一個矩形,其左上角坐標為 x1, y1,右下角坐標為 x2, y2。圖像的左上角坐標為 0, 0。
imagefilledrectangle -- 畫一矩形并填充
語法:bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color )
imagefilledrectangle() 在 image 圖像中畫一個用 color 顏色填充了的矩形,其左上角坐標為 x1,y1,右下角坐標為 x2,y2。0, 0 是圖像的最左上角。

imageellipse -- 畫一個橢圓
語法:bool imageellipse ( resource image, int cx, int cy, int w, int h, int color )
imageellipse() 在 image 所代表的圖像中畫一個中心為 cx,cy(圖像左上角為 0, 0)的橢圓。w 和 h 分別指定了橢圓的寬度和高度,橢圓的顏色由 color 指定。
imagefilledellipse -- 畫一橢圓并填充
語法:bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )
imagefilledellipse() 在 image 所代表的圖像中以 cx,cy(圖像左上角為 0, 0)為中心畫一個橢圓。w 和 h 分別指定了橢圓的寬和高。橢圓用 color 顏色填充。如果成功則返回 TRUE,失敗則返回 FALSE。

imagearc -- 畫橢圓弧
bool imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color )
imagearc() 以 cx,cy(圖像左上角為 0, 0)為中心在 image 所代表的圖像中畫一個橢圓弧。w 和 h 分別指定了橢圓的寬度和高度,起始和結束點以 s 和 e 參數以角度指定。0°位于三點鐘位置,以順時針方向繪畫。
imagefilledarc -- 畫一橢圓弧且填充
bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )
imagefilledarc() 在 image 所代表的圖像中以 cx,cy(圖像左上角為 0, 0)畫一橢圓弧。如果成功則返回 TRUE,失敗則返回 FALSE。w 和 h 分別指定了橢圓的寬和高,s 和 e 參數以角度指定了起始和結束點。style 可以是下列值按位或(OR)后的值:
IMG_ARC_PIE IMG_ARC_CHORD
IMG_ARC_NOFILL IMG_ARC_EDGED

imagestring -- 水平地畫一行字符串
語法:bool imagestring ( resource image, int font, int x, int y, string s, int col )
imagestring() 用 col 顏色將字符串 s 畫到 image 所代表的圖像的 x,y 坐標處(這是字符串左上角坐標,整幅圖像的左上角為 0,0)。如果 font 是 1,2,3,4 或 5,則使用內置字體。
imagestringup -- 垂直地畫一行字符串
語法:bool imagestringup ( resource image, int font, int x, int y, string s, int col )
imagestring()用 col 顏色將字符串 s 垂直地畫到 image 所代表的圖像的 x, y 座標處(圖像的左上角為 0, 0)。如果 font 是 1,2,3,4 或 5,則使用內置字體。

imagechar -- 水平地畫一個字符
語法:bool imagechar ( resource image, int font, int x, int y, string c, int color )
imagechar() 將字符串 c 的第一個字符畫在 image 指定的圖像中,其左上角位于 x,y(圖像左上角為 0, 0),顏色為 color。如果 font 是 1,2,3,4 或 5,則使用內置的字體(更大的數字對應于更大的字體)。
imagecharup -- 垂直地畫一個字符
語法:bool imagecharup ( resource image, int font, int x, int y, string c, int color )
imagecharup() 將字符 c 垂直地畫在 image 指定的圖像上,位于 x,y(圖像左上角為 0, 0),顏色為 color。如果 font 為 1,2,3,4 或 5,則使用內置的字體。
imagettftext -- 用 TrueType 字體向圖像寫入文本
語法 :array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )

<?php
    $im = imagecreatetruecolor(400, 30);     //創建400x300像素大小的畫布
    $white = imagecolorallocate($im, 255, 255, 255);  //創建白色
    $grey = imagecolorallocate($im, 128, 128, 128);   //創建灰色
    $black = imagecolorallocate($im, 0, 0, 0);           //創建黑色
    imagefilledrectangle($im, 0, 0, 399, 29, $white);     //使用白色作為背景
     //如果有中文輸出,需要將其轉碼,轉換為UTF-8的字符串才可以直接傳遞
    $text=iconv("GB2312", "UTF-8", "LAMP兄弟連--無兄弟,不編程!");
    $font = ‘simsun.ttc’;   //指定字體,將系統中對應字體復制到當前目錄下
    imagettftext($im, 20, 0, 12, 21, $grey, $font, $text);   //輸出灰色字串作為陰影
    imagettftext($im, 20, 0, 10, 20, $black, $font, $text);  //輸出一個黑色的字符串
    header("Content-type: image/png");  //通知瀏覽器將輸出格式為PNG的圖像
    imagepng($im);  //向瀏覽器中輸出PNG格式的圖像
    imagedestroy($im);      //銷毀資源,釋放內存占用的空間

demo.html

<img src="test.php" />

test.php

<?php
    //1 創建資源(畫布的大小)
    $img = imagecreatetruecolor(200, 200);  
    //設置畫布的顏色
    $white =  imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    $red =  imagecolorallocate($img, 255, 0, 0);
    $blue =  imagecolorallocate($img, 0, 0, 0XFF);
    $pink =  imagecolorallocate($img, 0XFF, 0, 0XFF);
    $green =  imagecolorallocate($img, 0, 0xFF, 0);
    
    
    imagefill($img, 0, 0, $white);
    //2. 制作各種顏色
    
    imageline($img, 0,0, 200,200, $blue);
    imageline($img, 200, 0, 0, 200, $red);


    //畫矩形
    imagerectangle($img, 50, 50, 150, 150, $pink);
    imagefilledrectangle($img, 75,75, 125,125, $blue);
    
    //畫圓
    imageellipse($img, 50, 50, 100, 100, $red);
    imagefilledellipse($img, 150, 150, 100, 100, $red);


    //畫弧形
    imagearc($img, 150, 50, 100, 100,  -90, 0, $blue);


    //畫一個字符串
    imagestring($img, 5, 50, 150, "hello world", $blue);
    imagestringup($img, 5, 50, 150, "hello world", $blue);

    //3. 畫出各種圖形,和寫(畫出)字
    imagettftext($img, 30, 0, 10, 100, $green, "./simkai.ttf", "妹子漂亮嗎?");
    imagettftext($img, 30, 0, 13, 103, $red, "./simkai.ttf", "妹子漂亮嗎?");

    //4保存,或輸出給瀏覽, 寫第二個參數就是保存
    header("Content-Type:images/gif");

    imagegif($img);

    //5. 釋放資源
    imagedestroy($img);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • PHP中GD庫的使用 GD簡介 PHP 不僅限于只產生 HTML 的輸出,還可以創建及操作多種不同格式的圖像文件。...
    dptms閱讀 1,028評論 0 2
  • 本文講解常用GD函數的應用 1.一個簡單的圖像 我們先看一個例子: 運行結果: 這段代碼中我們用了一下幾個函數: ...
    老馬的春天閱讀 1,571評論 2 8
  • 背景 驗證碼就是把一串隨機產品的數字動態生成一幅圖片,再加上干擾元素。此時用戶可以通過肉眼能識別里面的數字或者字符...
    dy2903閱讀 2,114評論 0 7
  • pygame圖形接口 使用pygame.image模塊,可以對圖像進行讀取和保存。 使用pygame.image....
    sssally92閱讀 17,651評論 1 25
  • 舊福印上壓了新福, 黏著油垢的鍋被刷洗了干凈, 鍋里的雞和上次的雞, 一個走了一生另一個走了十二年, 一個去遠足另...
    葡萄美酒閱讀 247評論 0 0