php 用圖片處理函數畫一張圖

一起來看看下面有一張圖:

7.png

#我們該怎麼把這張圖畫出來呢。

我們可以依照步驟分析:

    1.繪圖

    2.準備繪製這張圖所需要的顏色

    3.填入背景顏色

    4.畫出兩個對角線

    5.圓形

    6.在圓形上方畫一個矩型

    7.保存圖片

    8.銷毀資源

#一、我們依照這張圖推出步驟。我們來分析需要使用到的函數:

//使用imagecreate函数创建图片,返回资源
$img = imagecreate(500,500);

二、圖片建立完成我們需要填入圖片資源顏色,需要使用到函數

$颜色变量 = imagecolorallocate ( resource $图片资源 , int $红 , int $绿 , int $蓝 )

紅、綠、藍是電腦裡面操作圖片的三個基本色。由這三種顏色來組合成我們肉眼所看到的所有顏色。

因此 imagecolorallocate 先輸入圖片資源,操作這個資源。為這個圖片資源準備顏色。

就相當於在畫畫的時候,先把畫布準備好,再準備顏料。

根據這張圖,我們要準備出來的顏色有:

    1.綠色

    2.藍色

    3.黑色

#    3.黑色

    4.棕色

依照電腦的配色原則分配的話,我們下面的顏色分配的程式碼就要寫成下面的樣子:

//红
$red = imagecolorallocate($img, 255, 0, 0);
//绿
$green = imagecolorallocate($img, 0, 255, 0);
//蓝
$blue = imagecolorallocate($img, 0, 0, 255);
//棕
$yellow = imagecolorallocate($img, 121, 72, 0);
這中圖片中需要用到的幾個顏色的色值。

三、 將顏色加到背景進行填充

imagefilledrectangle ( resource $图片资源 , int $点1x轴, int $点1y轴 , int $点2x轴 , int $点2y轴 , int $color )

這個函數需要涉及到幾何的一點點知識。

    1.一個點由x 座標和y 座標組成一個點

    2.兩個點可以組成直線

    3.這條線如果不是水平或垂直的線可以組成一個矩形

document_2015-09-19_55fd0d5be46bb.png如下圖:


點1和點2,可以變成一個矩形。因此,我們輸出兩個座標點,可以對畫布進行填充。

如果要填滿整個畫布的話:

點1 為x軸為畫布的0位置,點1的y軸也為畫布的0位置。 點2 為x軸為畫布的500位置,點2的y軸也為畫布的500位置。

四、畫兩條對角線


畫一條對角線,對角線是紅色。 ######第一條對角線的座標為0和0,500和500###第二條對角線的座標為500和0,0和500###
imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

五、在上面畫一個圓

bool imagefilledellipse ( resource $图片资源 , int $圆心x , int $圆心y , int $圆的宽 , int $圆的高 , int $圆的颜色 )
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

操作這個資源,寫上圓心的座標。然後寫上長和寬。若長寬一致為正圓,則不一致則為橢圓。

六、在圓上面畫一個矩型

imagefilledrectangle($img, 200, 200, 300, 300, $blue);

這個我們在上面一個講過,我們就不細說了。

七、儲存圖片

bool imagejpeg ( resource $image [, string $filename])

#八、銷毀圖片資源

imagedestroy($img);

我們來看看最終組合出來的程式碼:

<?php
//创建图片
$img = imagecreatetruecolor(500, 500);

//分配颜色
$red = imagecolorallocate($img, 255, 0, 0);

$green = imagecolorallocate($img, 0, 255, 0);

$blue = imagecolorallocate($img, 0, 0, 255);

$pur = imagecolorallocate($img, 255, 0, 255);

$yellow = imagecolorallocate($img, 121, 72, 0);


//填充背景
imagefilledrectangle($img, 0, 0, 500, 500, $green);

//画对角线
imageline($img, 0, 0, 500, 500, $red);
imageline($img, 500, 0, 0, 500, $blue);

//画圆
imagefilledellipse($img, 250, 250, 200, 200, $yellow);

//圆中间画矩形
imagefilledrectangle($img, 200, 200, 300, 300, $blue);


//保存图片,图片名为haha.jpg
imagejpeg($img, 'haha.jpg');

//销毁资源
imagedestroy($img);

?>


繼續學習
||
<?php //创建图片 $img = imagecreatetruecolor(500, 500); //分配颜色 $red = imagecolorallocate($img, 255, 0, 0); $green = imagecolorallocate($img, 0, 255, 0); $blue = imagecolorallocate($img, 0, 0, 255); $pur = imagecolorallocate($img, 255, 0, 255); $yellow = imagecolorallocate($img, 121, 72, 0); //填充背景 imagefilledrectangle($img, 0, 0, 500, 500, $green); //画对角线 imageline($img, 0, 0, 500, 500, $red); imageline($img, 500, 0, 0, 500, $blue); //画圆 imagefilledellipse($img, 250, 250, 200, 200, $yellow); //圆中间画矩形 imagefilledrectangle($img, 200, 200, 300, 300, $blue); //保存图片,图片名为haha.jpg imagejpeg($img, 'haha.jpg'); //销毁资源 imagedestroy($img); ?>