PHP画布

header指令

  • header('content-type:image/png')
  • header('Content-Type:image/gif');
  • header('Content-Type:image/jpeg');

创建画布

resource imagecreatetruecolor(int $width,int $height) — 新建一个真彩色图像

返回一个图像标识符,代表了一幅大小为width 和height 的黑色图像
返回值:成功后返回图像资源,失败后返回false

//创建画布
$width = 200;
$height =80;
$img =imagecreatetruecolor($width,$height);

输出图像

bool imagepng(resource $image[,string $filename]) — 以png格式将图像输出到浏览器或文件

将GD图像流(image)以PNG格式输出到标准输出(通常为浏览器),或者如果用filename 给出了文件名则将其输出该文件

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

 

颜色管理

int imagecolorallocate(resource $image,int $red ,int $green ,int $blue) — 为一幅画图像分配颜色

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

//颜色管理
$color =imagecolorallocate($img,0xcc,0xcc,0xcc);//灰色

填充画布

bool imagefill  ( resource $image  , int $x  , int $y  , int $color  )

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

//填充画布
imagefill($img,0,0,$color);

销毁图像

 

bool imagedestroy (resource $image) — 释放与image关联的内存

//销毁画布
imagedestroy($img);

 

绘制图形

点:

bool imagesetpixel(resource $image,int $x,int $y,int $color)画一个单一像素

在image图像中用color颜色在x,y坐标(图像为左上角为0,0)上画一个点

//画点
imagesetpixel($img,$x,$y,$color);

线:

bool imageline( resource $image , int $x1,int $y1 ,int $x2,int $y2,int $color)

用color颜色在图像image中从坐标x1,y1到x2,y2(图像左上角为0,0)画一条线段

//画线
imageline($img,$x1,$y1,$x2,$y2,$color);

绘制矩形有两种方式

第一种:

bool imagerectangle(resource $image,int $x1,int $y1,int $x2,int $col)

用color颜色在image图像中画一个矩形,其左上角坐标为x1,y1,右下角的坐标为x2,y2。图像的左上角坐标为0,0

 

第二种是颜色填充的矩形:

bool imagefilledrectangle(resource $image,int $x1,int $y1,int $x2,int $y2,int $color)

在image图像中画一个用color颜色填充了的矩形 其左上角坐标为x1,y1,右下角坐标为x2,y2。  0,0是图像的左上角
 

绘制文字

array imagettftext(resource $image,float $size ,float $angle ,int $x ,int $y,int $color,string $fontfile ,string $text)

size : 字体的尺寸,根据GD的版本,为像素尺寸(GD1)或点(磅)尺寸(GD2)
angle:角度制表示的角度,0度为从左向右读的文本。更高数值表示逆时针旋转。
            由x,y所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)
color:颜色索引
fontfile: 是想要使用的True Type 字体的路径
text :UTF-8编码的文本字符串

//绘制文字
$color = imagecolorallocate($img,255,0,0);
    $index = rand(0,$len-1);
    $chr = substr($str,$index,1);
    $yzm .= $chr;
    $x = 20 +$i*40;
    $y = 60;
    imagettftext($img,50,rand(-70,70),$x,$y,$color,$font,$chr);

 

 

 

 

 

你可能感兴趣的:(PHP画布)