创建画布

1.header

首先我们先讲header指令,之前学习过的header('content-type:text/html;charset=utf-8');主要针对与输出文字内容的网页,而现在要输出图像所以要使用这几个header指令,

第一个---header('content-type:image/png');

第二个---header ( 'Content-Type: image/gif' );

第三个---header ( 'Content-Type: image/jpeg' );

2.创建画布

创建画布我们使用imagecreatetruecolor()函数,这个函数会新建一个真彩色图像

这个函数的语法结构为 resource imagecreatetruecolor  ( int $width  , int $height  )

resource表示资源,PHP有一个特殊的数据类型就是resource(资源),我们创建画布使用的就是资源

这个函数返回一个图像标识符(或者叫资源),代表了一幅大小为 width  和 height  的黑色图像。

返回值:成功后返回图象资源,失败后返回 FALSE  。

<?php
header('content-type:image/png');
//创建画布(在内存中存放)
$img = imagecreatetruecolor(200,100);

我们创建好的画布是在内存中存放,要想显示出来,就需要输出

3.输出图像

输出图像我们使用imagepng ()函数,是因为我们的header指令中写的png,使用要使用imagepng ()函数,

语法结构为bool imagepng  ( resource $image  [, string $filename  ] );  它将 GD 图像流( image )以 PNG 格式输出到标准输出(通常为浏览器),或者如果用 filename  给出了文件名则将其输出到该文件。

输出图像的函数还有imagegif,imagejpeg 两种

bool imagegif  ( resource $image  [, string $filename  ] );

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

//输出画布
imagepng($img); 

4.销毁图像

输出玩画布后我们要销毁图像,目的是释放被占用的空间(或者说是资源),我们使用imagedestroy 

语法结构为  bool imagedestroy  ( resource $image  )    释放与 image  关联的内存

//销毁图像(释放占用的资源)
imagedestroy($img);

5.颜色管理

接下来我们要来创建一个颜色,我们使用imagecolorallocate

语法结构为  int imagecolorallocate  ( resource $image  , int $red  , int $green  , int $blue  )    为一幅图像分配颜色

参数red , green  和 blue  分别是所需要的颜色的红,绿,蓝成分。这些参数是 0 到 255 的整数或者十六进制的 0x00 到 0xFF

//创建颜色
$color = imagecolorallocate($img,255,0,0);

6.填充颜色

我们还要确定一个填充区域,使用imagefill 

语法结构为  bool imagefill  ( resource $image  , int $x  , int $y  , int $color  )

这个函数意思为 image  图像的坐标 x , y (图像左上角为 0, 0)处用 color  颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)

//填充区域
imagefill($img,0,0,$color); 

然后我们的画布就创建完毕了完整版代码如下、

<?php
header('content-type:image/png');
//创建画布(在内存中存放)
$img = imagecreatetruecolor(200,100);
//创建颜色
$color = imagecolorallocate($img,255,0,0);
//填充区域
imagefill($img,0,0,$color); 
//输出画布
imagepng($img); 

//销毁图像(释放占用的资源)
imagedestroy($img);

猜你喜欢

转载自blog.csdn.net/qq_42402975/article/details/84396406