GD2函数库

来源:互联网 发布:数据流程图是什么 编辑:程序博客网 时间:2024/06/05 14:10

GD2函数库是一个开放的、动态创建图像的、源代码公开的函数库,可以从官方网站http://www.boutell.com/gd下载最新版本的GD2库。使用GD2函数库可以在页面中绘制各种图形图像,以及统计图,如果与Ajax技术相结合,还可以制作出各种强大的动态图表。

在PHP中,对图像的操作可以分为以下4个步骤:

创建画布-->在画布上绘制图形-->保存并输出结果图像-->销毁图像资源。

1、创建画布

GD2函数库在图形图像绘制方面功能非常强大,利用它开发人员既可以在已有图片的基础上进行绘制,也可以在没有任何素材的基础上绘制,在后者情况下首先要创建画布,之后所有操作都将依据所创建的画布进行。

<span style="font-size:18px;">resource imagecreate( int x_size, int y_size)</span>

//该函数用于返回一个图像标识符,参数单位为像素(pixel)

载入图片用:imagecreatefromjpeg("图片的相对地址")  //对.jpg类的图片,其他种类的图片类似

2、颜色处理

应用GD2函数库绘制图形需要为图形中的背景、边框和文字等元素指定颜色。

<span style="font-size:18px;">int imagecolorallocate( resource image, int red, int green, int blue)</span>

注意:在画布上第一次调用imagecolorallocate将完成背景颜色的填充。

3、绘制文字

应用PHP中的GD库既可以绘制英文字符串,也可以绘制中文汉字。

绘制英文字符串:

<span style="font-size:18px;"><span style="font-size:18px;">bool imagestring( resource image, int font, int x, int y, string s, int col)</span></span>

//imagestring()函数用col颜色将字符串s绘制到image所代表的图像的x,y坐标处(这是字符串左上角坐标,整幅图像的左上角为0,0)。如果font是1、2、3、4或5,则使用内置字体。

绘制中文汉字:

<span style="font-size:18px;">array imagettftext( resource image, float size, float angle, int x, int y, int color, string fontfile, string text)</span>

//size:字体大小。根据GD版本不同,应以像素大小指定(GD1)或点大小(GD2)

//angle:字体的角度,逆时针计算,0°为水平,(从左到右),90°则为由下到上的文字

//x,y:文字的坐标值

//color:文字的颜色

//fontfile:字体的文件名称,也可以是远端的文件

//text:字符串内容

注意:在GD2函数库中支持的是UTF-8编码格式的中文,所以在通过imagettftext()函数输出中文字符串时,必须保证中文字符串的编码格式是UTF-8,否则中文将不能正确地输出。如果定义的中文字符串是GB2312简体中文编码,那么要通过iconv()函数对中文字符串的编码格式进行转换。
4、输出图像

PHP作为一种Web语言,无论是解析出的HTML代码还是二进制的图片最终都要通过浏览器显示。应用GD2函数绘制的图像首先需要用header()函数发送HTTP头信息给浏览器,告知所要输出图像的类型,然后应用GD2函数库中的函数完成图像输出。

<span style="font-size:18px;">void header( string string [, bool replace [, int http_response_code]])</span>

//string:发送的标头。

//replace:如果一次发送多个标头,对于相似的标头是替换还是添加。如果是FALSE,则强制发送多个同类型的标头。默认为TRUE,即替换。

//http_response_code:强制HTTP响应为指定值。

使用header()函数可以实现如下4种功能:

(1)重定向,这是最常用的功能:

<span style="font-size:18px;">header("Location: http://www.xxx.com")</span>

(2)强制客户端每次访问页面时获取最新资料,而不是使用存在于客户端的缓存。

<span style="font-size:18px;">//设置页面的过期时间(用格林威治时间表示)header("Expires: Mon, 08 Jul 2018 08:08:08 GMT");//设置页面的最后更新日期(用格林威治时间表示),使浏览器获取最新资料header("Last-Modified:".gmdate("D, d M Y H:i:s")."GMT");header("Cache-Control: no-cache, must-revalidate");//控制页面不使用缓存header("Pragma: no-cache"); //参数(与以前的服务器兼容),即兼容HTTP 1.0协议header("Content-type: application/file"); //输出MIME类型header("Content-Length: 227685"); //文件长度header("Accept-Ranges:bytes");//接受的范围单位//默认时文件保存对话框中的文件名称header("Content-Disposition: attachment; filename=$filename"); //实现下载</span>

(3)输出状态值到浏览器,控制访问权限。

<span style="font-size:18px;">header('HTTP/1.1 401 Unauthorized');header('status: 401 Unauthorized');</span>

(4)完成文件的下载

<span style="font-size:18px;">header("Content-type: application/x-gzip");header("Content-Disposition: attachment; filename=文件名");header("Content-Description: PHP3 Generated Data");</span>


imagegif()函数以GIF格式将图像输出到浏览器或文件,语法如下:

<span style="font-size:18px;">bool imagegif( resource image [, string filename])</span>

imagejpeg()和imagepng()函数的使用方法同imagegif()类似。

5、销毁图像

在GD2函数库中通过imagedestroy()函数来销毁图像,释放内存。

<span style="font-size:18px;"><span style="font-size:18px;">bool imagedestroy( resource image)</span></span>






0 0
原创粉丝点击