使用PHP能够完成的一件有意义的事情之一就是创建动态图像。PHP提供了一些内置的图像信息函数,也可以使用GD2函数库创建新图像或处理已有的图像。本章将介绍如何使用这些图像函数得到一些有趣而又有用的效果。
在本章中,我们将主要介绍以下内容:
■在PHP中设定图像支持
■理解图像格式
■创建图像
■在其他页面中使用自动生成的图像
■用文本和字体创建图像
■绘制图像与用图表描绘数据
特别地,我们将介绍两个例子:创建网站动态按钮和使用来自MySQL数据库中的数字绘制一个条形图。
在这里,我们将使用GD2函数库,但是还有一个颇受欢迎的PHP图像库。ImageMagick库并不是标准PHP的一部分,但是通过PHP扩展类库(PECL)很容易安装这个函数库。ImageMagick和GD2都有许多类似的特性,但是在某些方面,ImageMagick的功能更丰富一些。如果希望创建GIF(甚至是动画GIF),就应该使用ImageMagick。如果希望使用真彩图像或制造透明效果,应该比较这两个函数库所提供的功能。
访问如下站点可以找到ImageMagick的PHP下载扩展类库——PECL:
http://pecl.php.net/package/imagick.
关于ImageMagick主要功能的介绍以及详细文档,请参阅如下站点:
http://www.imagemagick.org.
22.1 在PHP中设置图像支持
在PHP中,有些图像函数是可以直接使用的,但是大多数函数需要安装GD2函数库。关于GD2的详细信息,请访问站点:http://www.boutell.com/gd/。
从PHP的4.3版本开始,PHP捆绑了自己版本的GD2库,这是由PHP开发团队实现的。这个版本的GD2库更容易安装,因此我们可以使用这个版本。在Windows平台下,只要注册了php_gd2.dll扩展,PNG和JPEG是自动支持的。注册php_gd2.dll非常简单,只要在PHP的安装目录(/ext子目录)找到该文件并复制到系统目录(如果使用Windows XP,就是C:/Windows/system)。此外还需要在php.ini文件中取消如下一行指令的注释(删除该行指令开始处的“;”),如下所示:
extension=php_gd2.dll
如果使用UNIX而又希望使用PNG,必须安装libpng库和zlib库,可以从如下站点分别获得它们:http://www.libpng.org/pub/png/、http://www.gzip.org/zlib/。
需要使用如下命令行选项对PHP进行配置:
--with-png-dir=/path/to/libpng
--with-zlib-dir=/path/to/zlib
如果使用UNIX并且希望使用JPEG,必须下载jpeg-6b库,然后重新编译GD库,使其包括对JPEG的支持。可以从以下站点下载该库:ftp://ftp.uu.net/graphics/jpeg/。
此外,还应该使用如下命令行选项重新配置和编译PHP:
--with-jpeg-dir=/path/to/jpeg-6b
如果希望在图像中使用TrueType字体,还需要FreeType库。这个函数库也是在从PHP 4版本开始捆绑的。当然,也可以从以下站点下载该库:http://www.freetype.org/。
如果希望使用PostScript Type 1字体,必须下载t1lib库,可以从如下站点下载该库:
ftp://sunsite.unc.edu/pub/Linux/libs/graphics/.
需要使用如下所示的命令行选项运行PHP的配置程序:
--with-t1lib[=path/to/t1lib]
最后使用--with--gd配置PHP。