开始

PHP动态图像处理

相关代码见:https://www.github.com/lozybean/learn_www/ 目录

1. 画布管理:

    imagecreate():创建一个基于调色板的画布,指定画布的长、宽,并返回其资源句柄;

    imagecreatetruecolor():创建一个真彩色图像画布,指定画布的长、宽,并返回其资源句柄;

    imagedestroy():销毁一个画布句柄;

2. 设置颜色:imagecolorallocate(),第一个参数指定画布句柄,后三个参数分别指定rgb值,返回一个颜色标示符;

3. 生成图像:imagegif()、imagejpeg()、imagepng()、imagewbmp(),分别生成不同格式的图像;

    在生成图像之前,必须使用header()函数,告知浏览器使用正确的MIME类型对接收的内容进行解析;

    header(“Content-type: image/gif")

4. 绘制图像:

    imagefill(resource $image,$x,$y,$color),坐标($x,$y)表示相对于图像左上角(0,0)的位置,使用$color填充,与该点相邻且颜色相同的点都会被填充,有点像油漆桶的操作。

    imagesetpixel(resource $image,$x,$y,$color),在($x,$y)出绘制一个单一点;

    imageline(resource $image,$x1,$y1,$x2,$y2,$color),绘制一条起点为($x1,$y1),终点为($x2,$y2)的线段;

    imagerectangle(resource $image,$x1,$y1,$x2,$y2,$color),绘制一个矩形,左上角为($x1,$y1),右下角为($x2,$y2);

    imagefilledrectangle():绘制一个矩形,并使用颜色填充;

    imagepolygon(resource $image,array $points,int $num_points, int $color):绘制一个多边形,$points数组指定多边形每个顶点的坐标,依次以x0,y0,x1,y1的顺序保存,$num_points指定顶点总数;

    imagefilledpolygon():和上一个函数一样,并使用颜色填充;

    imageellipse(resource $image,$cx,$cy,$w,$h,$color):绘制一个椭圆,($cx,$cy)指定椭圆的中心,$w,$h表示椭圆的宽和高;

    imagefilledellipse():和上一个函数一样,并使用颜色填充;

    imagearc(resource $image,$cx,$cy,$w,$h,$s,$e,$color):绘制圆弧,($cx,$cy)为坐标中心,$w和$h分别指定椭圆的宽和高,起始点和终止点以角度指定,$s,$e指定开始和终止的角度,其中0°位于三点钟的位置;

    imagefilledarc():和上一个函数一样,并使用颜色填充;

5. 绘制文字:

    imagestring(resource $image,$font,$x,$y,$s,color):水平画一行字符串,$font为一个整形表示内置字体,值越大字体越大,($x,$y)表示起点坐标,$s指定字符串;

    imageupstring():垂直画一行字符串,参数相同;

    imagechar():水平画一个字符,参数相同,$s出为一个字符;

    imageupchar():垂直画一个字符,参数相同;

6. TrueType字体:imagettftext(resource $image,float $size,float $angle, int $x, int $y, int $color,string $fontfile, string $text);

    其中$size设定字体大小,$angle设定角度,0°为从左向右的角度,更高的数值表示逆时针旋转,($x,$y)代表第一个字符的左上角坐标,$fontfile指定一个TrueType字体的路径,$text指定输出的字符串;如果是中文,则应该将其转换为UTF-8编码:iconv(“GB2312”,”UTF-8”,”一个中文”);

7. 验证码应用(见目录vcode)

8. 图像处理应用(见目录handle_image)

posted @ 2015-07-06 23:04  Lyon2014  阅读(197)  评论(0编辑  收藏  举报