|
三、创建图像步骤
在PHP中创建一个图像通常需要以下四个步骤:
1. 创建一个背景图像,以后所以操作但是基于此背景。
2. 在图像上绘图轮廓或或者输入文本。
3. 输出最终图形。
4. 清除内存中所有资源。
下面我们看一个应用实例,一个带“PHP”标签的正方型。脚本如下:
|
<?php $height = 300; $width = 300; $im = ImageCreateTrueColor($width, $height); $white = ImageColorAllocate ($im, 255, 255, 255); $blue = ImageColorAllocate ($im, 0, 0, 64); ImageFill($im, 0, 0, $blue); ImageLine($im, 0, 0, $width, $height, $white); ImageString($im, 4, 80, 150, 'PHP', $white); Header ('Content-type: image/png'); ImagePng ($im); ImageDestroy($im); ?> |
最后把这一小段脚本保存为si1.php,然后用浏览器对它进行访问,就可以看到一个300×300像素大小的PNG格式的图像,见图3。

图3 PNG图像格式输出到浏览器的界面
下面我们详细讲解创建图像过程:
1. 创建一个背景图
要在PHP中建立或者修改一个图像,必须首先建立一个图像标示符号。这里提供调用函数:来实现,如下所示:
$im = ImageCreateTrueColor($width, $height)
然后为这个函数传递两个参数:第一个是新图像宽度,第二个是新图像高度。该函数将返回新图像的标示符号。
2. 在图像上绘图、打印文本
在一个图像上绘图和打印文本需要两个步骤:1.首先选择颜色。这里通过调用函数$im = ImageCreateTrueColor()为图像选择颜色。颜色由红、绿、蓝(RGB)值的组合决定。这里使用了两种颜色:
$white = ImageColorAllocate ($im, 255, 255, 255);
$blue = ImageColorAllocate ($im, 0, 0, 64);
然后需要使用其他函数将颜色绘制到图像中。这些函数的选择取决于要绘制的内容:直线、弧形、多边行或者文本。上面的脚本si1.php,一共使用了三个函数:
ImageFill($im, 0, 0, $blue);
这个函数以图像标示符号、绘图区域的起始坐标(X和Y)以及颜色为参数。{注意PHP中图像的起始坐标从左上角开始,该点坐标为X=0,Y=0.图像右下角的坐标X=$width ,Y=$height。这于常规作图习惯是相反的。}
ImageLine($im, 0, 0, $width, $height, $white);
这个函数以图像标示符号、直线的起始点的X和Y坐标以及颜色为参数。这样就从左上角(0,0)开始划一条直线到图像右下角($width, $height)。
最后我们在该图像中添加一共标签:
ImageString($im, 4, 50, 150, ‘PHP’, $white);
这个函数以图像标示符号、字体、文本的起始坐标(X和Y)以及颜色为参数。字体参数值范围从1-5之间的数字。这里选择的是TrueType字体。
3.输出最终图形
可以将图像输出到浏览器或者一共文件。上面的例子中直接输出到浏览器。包括两个部分:.
A.首先告诉Web浏览器我们输出的是一个图像而不是文本或者HTML。
我们发送一个图形头来“欺骗”浏览器,使它认为我们的PHP页面是一幅真正的图像,这样它才可以正确显示在屏幕上。服务器将以二进制数据流的形式把程序产生的信息发送到浏览器。这里使用函数指定图像的MIME类型来完成:
Header (‘Content-type: image/png’);
通常在使用浏览器接受一共文件时候,Apache Web服务器首先发送的内容是MIME类型。对于PHP页面是:
Content-type: text/html
B.发送标题数据后,下面使用如下函数输出图像数据。
ImagePng ($im);
该函数以PNG格式将输出内容发送到浏览器。
C. 清除资源
当完成对一共图像的处理后,应当使用销毁图像标示符号,然后将所占用的选题资源返回给Web服务器。这里调用函数ImageDestroy()完成:
ImageDestroy():
ImageDestroy($im);
这样作是为了降低CPU负荷。如果你不使用该函数在Web端有太多这样的图片产生任务,你可能会发现导致性能下降。
| Linux网络安全策略和保护措施 | 03-30 |
| 用openvpn快速建立linux下的加密 | 12-05 |
| 资深网管教你对抗Linux系统病毒 | 09-19 |
| 打造完美Linux 必须从微软学到5件 | 09-07 |
| 复制服务器安装配置 | 09-06 |
| 简析Linux与FreeBSD的syscall与s | 08-28 |
| Linux操作系统12则经典应用技巧 | 07-05 |
| 如何用Linux做代理服务器 | 06-20 |
| 在Linux下安装VNC 远程安装 | 06-16 |
| RedHat Linux下防火墙配置入门必 | 06-01 |
| Linux网络服务器配置基础详解发表 | 06-01 |
| 一个网卡上绑定2个或2个以上的IP | 05-08 |