首页 > 开发 > PHP > 正文

图象函数

2024-05-04 22:57:33
字体:
来源:转载
供稿:网友
php中有一组图像函数,可以动态生成gif格式的图像数据流并输出到服务器. 为了这组函数能够工作,系统中必须有gd库的支持.如果是在unix下, 应该在编译php之前先取得gd的源码并编译之,生成libgd.a和一些.h文件,分别拷到系统的库目录和头文件目录中(例如/usr/lib和/usr/include);如果是在windows下,php3.0的安装程序会安装一个gd.dll文件,在程序中加一句'dl("gd.dll");'即可使用图像函数.

主要的图像函数有:

(1)imagecreate(宽度,高度)

返回一个图像描述符.

 

(2)imagecreatefromgif(文件名);

返回一个图像描述符.

 

(3)imagecolorallocate(图像描述符,红,绿,蓝);

返回一个颜色描述符.由于gif图像只能有256色,必须先对它分配调色板, 这个语句就是分配一个调色板项.

 

(4)imagecolortransparent(图像描述符,颜色描述符);

指定某颜色为透明色.

 

(5)imagearc(图像描述符,圆心横坐标,圆心纵坐标,椭圆宽,椭圆高,起始角,终止角,颜色描述符);

imagechar(图像描述符,字体,x,y,字符,颜色描述符);

imagecharup(图像描述符,字体,x,y,字符,颜色描述符);

imagecopyresized(目标图像描述符,源图像描述符,目标x,目标y,源x,源y,目标宽,目标高,源宽,源高);

imagedashedline(图像描述符,x1,y1,x2,y2,颜色描述符);

imagefill(图像描述符,起始点x,起始点y,颜色描述符);

imagefilledpolygon(图像描述符,各顶点数组,顶点数,颜色描述符);

imagefilledrectangle(图像描述符,x1,y1,x2,y2,颜色描述符);

imagefilltoborder(图像描述符,起始点x,起始点y,边界色,填充色);

imageline(图像描述符,x1,y1,x2,y2,颜色描述符);

imagepolygon(图像描述符,各顶点数组,顶点数,颜色描述符);

imagerectangle(图像描述符,x1,y1,x2,y2,颜色描述符);

imagesetpixel(图像描述符,x,y,颜色描述符);

imagestring(图像描述符,字体,x,y,字符串,颜色描述符);

imagestringup(图像描述符,字体,x,y,字符串,颜色描述符);

这些都是画图函数,需要略做解释的就是多边形的顶点数组内依次存放着第一点x,第一点y,第二点x,第二点y,...

 

(6)imageloadfont(文件名);

文件应该是一个位图字体文件,返回一个字体号.系统缺省带有1-5字体号, 可以直接使用.

 

(7)imagesx,imagesy

分别得到一个图像的宽度和高度,接收一个图像描述符参数.

 

(8)imagecolorat(图像描述符,x,y);

imagecolorclosest(图像描述符,红,绿,蓝);

imagecolorexact(图像描述符,红,绿,蓝);

imagecolorset(图像描述符,颜色描述符,红,绿,蓝);

imagecolorsforindex(图像描述符,颜色描述符);

imagecolorstotal(图像描述符);

前三个返回一个颜色描述符.imagecolorexact如果找不到匹配则返回-1.

imagecolorsforindex返回一个三项的数组,元素分别是红,绿,蓝值.

imagecolorstotal返回总颜色数.

 

(9)imagefontheight,imagefontwidth

接收一个字体号作为参数.

 

(10)imagegif(图像描述符,[文件名]);

如无文件名,则将gif数据流送往浏览器.这时程序一开始应该有一句: header("content-type: image/gif")

 

(11)imagedestroy(图像描述符);

图像函数中有一个小bug(至少在php3.0rc和php3.0rc3 for unix的源码中已经发现,现在www.php.net上的下载文件应该已经更改),就是imagesetpixel总是在(y,y)处画点,不管x的值是什么,不过这个问题不是很大.
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表