|
|
 |
PHP如何生成动态图象? |
热 ★★★★ |
|
PHP如何生成动态图象? |
|
作者:闵涛 文章来源:闵涛的学习笔记 点击数:597 更新时间:2009/4/23 11:02:31  |
|
|
综述:PHP中有一组图像函数,可以动态生成gif格式的图像数据流并输出到服务器,这样我们就可以按照用户的需求及时地在线生成图像。下面我们以生成一个按钮为例子来谈一谈如何用PHP生成动态图像。
动态图像是怎样被生成的?
让我们先看看下面的代码,如果第一次浏览该页或者用户置表单为空,则默认值为"Go!";如果用户输入了信息并提交表单,这段代码将被重新调用且进行初始化。
这个文件的其余的部分就是简单的在表格中输出一些元素和调用其他的文件。
现在,我们开始制作按钮。第一个例子是生成一个黑边儿绿底儿的椭圆文字按钮。我们通过一个标准的<IMG>标签儿来显示按钮图象;SRC的值是生成按钮图象的文件。
<img src="green_ellipse.php?string=<? print rawurlencode($string); ?>"> 下面让我们看看生成椭圆的文件"green_ellipse.php"
生成椭圆
这里列出了green_ellipse.php的代码,我们以Header()开头,可以向Apache服务器发从一个HTTP的头信息,这一步告诉Server使用的什么数据,本例中我们使用的是GIF的格式:
<? Header("Content-Type: image/gif");
//现在我们将生成一幅空的图象,并且将其赋值给变量$id: $id=ImageCreate($img_width,$img_height); //图像润色 …… //使用内嵌的五号字在按钮上写上文字,最后给按钮上的文字设置变量$black的颜色: ImageString($id, 5,($img_center_x-($str_width/2+1), img_center_y-($str_height/2)), $string, $black); //最后,把图象从内存中道出到标准输出缓冲--这是Server将得到的图象的内容: ImageGIF($id); ?> 这个程序只适合像"Go!"这样短的按钮,像"Please click here!"这样的长字符串就会不好看。没关系,看看下面这个圆边矩形。
生成更美观的图样
这个例子将生成一个黑边儿,黄色棱角的图样。你可以看到这种方法比第一个例子更适合长字符串的按钮。
如果你看了前面的代码,这里的代码你就容易看懂了。我们将从生成按钮的形状开始。
在每一个字符串的结尾处建立20个象素的边缘,并在字符串的上下各建10个象素的边缘:
<?php 初始化,参数设定 …… 在图象的左端画了一个半圆,再从六点通过九点画到12点: ImageArc($id,20,$img_center_y,20,$str_height+20,90,270,$black); 对于右端,是同上面一样的,只是从右端20象素开始画起,并且掠过相反的半圈儿--从12点通过3点到六点: ImageArc($id,($img_width-20),$img_center_y,20,$img_height+20,270,90,$black); 最后,从一端的端顶向另一端画一条直线,同样在底部也画一条直线。这样闭合了形状的内部。 ImageLine($id,20,0,($img_width-20),0,$black); ImageLine($id,20,$img_height-1,($img_width-20),$img_height-1,$black); 在这个区域里填充变量$yellow所定义的颜色,并充满整个区域: ImageFillToBorder($id,$img_center_x,$img_center_y,$black,$yellow); 再将字符串写入到图象中,之后向标准输出打印图象: ImageString($id, 5, ($img_center_x-($str_width/2)+1,($img_center_y-($str_height/2)), $string, $black); ImageGIF($id); ?>
没有相关教程
|
|
| 教程录入:mintao 责任编辑:mintao |
|
|
上一篇教程: PHP中的XML应用_ 下一篇教程: 用PHP4中的PDF扩展来创建一个PDF文档 |
|
|
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |
|
注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网] |
网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!) |
| |
|
|
|
|
|
 |
同类栏目 |
 |
 |
赞助链接 |
 |
|
500 - 内部服务器错误。
|
|
|
|
|
|