background image

PHP 编实现程动态图像的创建

只要安装一些第三方的库文件并具有一定的几何知识,就可以利用 PHP 来创建和处理图
像了。利用 PHP 创建动态图像是相当容易的一件事情。下面,笔者将详细介绍如何实现。
在使用基本的图像创建函数之前,需要安装 GD 库文件。如果要使用与 JPEG 有关的图像
创建函数,还需要安装 jpeg-6b,如果要在图像中使用 Type 1 型字体,则必须安装 t1lib。
<在建立图像创建环境之前,还需要做一些准备工作。首先,安装 t1lib 接着安装 jpeg-6b,
然后再安装 GD 库文件。在安装时一定要按这里给定的顺序进行安装,因为在编译 GD 入
库时会用到 jpeg-6b,如果没有安装 jpeg-6b,在编译时就会出错。
在安装完这三个组件后,还需要重新配置一次 PHP,这也是你对采用 DSO 方式安装 PHP
感到庆幸的地方之一。运行 make clean,然后在当前的配置中添加下面的内容:

--with-gd=[/path/to/gd]  --with-jpeg-dir=[/path/to/jpeg-6b]
  --with-t1lib=[/path/to/t1lib]

完成添加后执行 make 命令,然后再执行 make install 命令,重新启动 Apache 后运行
phpinfo()来检查一下新的设置是否生效了。现在,我们就可以开始图像创建工作了。

<根据所安装的 GD 库文件的版本将决定你是否能创建 GIF 或 PNG 格式的图形文件。如果
安装的是 gd-1.6 或以前的版本,可以使用 GIF 格式的文件但不能创建 PNG 格式,如果安
装的是 gd-1.6 以后的版本,可以创建 PNG 文件但不能创建 GIF 格式的文件。
创建一幅简单的图像也需要用到许多的函数,我们将一步一步地进行说明。

在下面的例子中,我们将创建一个 PNG 格式的图像文件,下面的代码是一个包含所创建
的图像的 MIME 类型的头部:

<? header ("Content-type: image/png");

使用 ImageCreate()创建一个代表空白图像的变量,这个函数要求以像素为单位的图像大
小的参数,其格式是 ImageCreate(x_size, y_size)。如果要创建一个大小为 250×250 的图像,
就可以使用下面的语句:

$newImg = ImageCreate(250,250);

由于图像还是空白的,因此你可能会希望用一些彩色来填充它。你需要首先使用
ImageColorAllocate()函数用其 RGB 值为这种颜色指定一个名字,这一函数的格式为
ImageColorAllocate([image], [red], [green], [blue])。如果要定义天蓝色,可以使用如下的语
句:
 $skyblue = ImageColorAllocate($newImg,136,193,255);

接下来,需要使用 ImageFill()函数用这种颜色填充这个图像,ImageFill()函数有几个版本,
例如 ImageFillRectangle()、ImageFillPolygon()等。为简单起见,我们通过如下的格式使用
ImageFill()函数:
  ImageFill([image], [start x point], [start y point], [color])
  ImageFill($newImg,0,0,$skyblue);
  最后,在图像建立后释放图像句柄和所占用的内存:
  ImagePNG($newImg);
  ImageDestroy($newImg); ?>