background image

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); ?>

  这样,创建图像的全部代码如下所示:
      php 代码:   <? header ("Content-type: image/png");
  

$newImg = ImageCreate(250,250);

  

$skyblue = ImageColorAllocate($newImg,136,193,255);