快速业务通道

说说PHP作图(三)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-22

上次说到用GD作各种几何图形,以及填充颜色。其中故意把这样一个较复杂的情况留到后面,这就是任意多边形和任意多边形的填充颜色。

<?
 Header("Content-type: image/png");
 $im = ImageCreate (200, 100);
 $col_blk = ImageColorAllocate($im, 0,0,0);
 $col_grn = ImageColorAllocate($im, 0,255,0);
 $parray = array(40,10,60,10,70,20,60,50,40,50,30,20);
 // 定义一个数组,12个成员是6个点的横纵坐标。
 ImagePolygon($im,$parray,6,$col_grn);
 // 这就是绘制任意多边形的函数,$parray是刚才定义的数组,6表示六个点。注意六个点连成的是六边形。
 // 不必人为地为了闭合图形而在最后增加一个与第一点相同的点。
 ImagePNG($im);
 ImageDestroy($im); 
?>

你应该已经想到了,任意多边形填充颜色的函数:

<?
 Header("Content-type: image/png");
 $im = ImageCreate (200, 100);
 $col_blk = ImageColorAllocate($im, 0,0,0);
 $col_orn = ImageColorAllocate($im, 255,192,0);
 $col_yel = ImageColorAllocate($im, 255,255,0);
 $col_red = ImageColorAllocate($im, 255,0,0);
 $col_grn = ImageColorAllocate($im, 0,255,0);
 $col_blu = ImageColorAllocate($im, 0,0,255);
 $parray = array(40,10,60,10,70,20,60,50,40,50,30,20);
 ImageFilledPolygon($im,$parray,6,$col_grn);
 ImagePNG($im);
 ImageDestroy($im); 
?>

嗯。下面我们可以在图象上写字了。不过,先别高兴,要想写汉字还得费一些麻烦。这个以后再逐渐解释。先看看怎么简单地写西文字符吧。

<?
 Header("Content-type: image/png");
 $im = ImageCreate (200, 250);
 $col_blk = ImageColorAllocate($im, 0,0,0);
 $col_orn = ImageColorAllocate($im, 255,192,0);
 $str="This is a test.";
 ImageString($im,1,10,10,$str,$col_orn);
 ImageString($im,2,10,30,$str,$col_orn);
 ImageString($im,3,10,60,$str,$col_orn);
 ImageString($im,4,10,100,$str,$col_orn);
 ImageString($im,5,10,150,$str,$col_orn);
 // 这里连续五次调用ImageString,在不同位置,
 // 分别用从小到大的字型输出了字符串 $str。
 // ImageString 函数只支持五种字型(1~5)
 ImagePNG($im);
 ImageDestroy($im); 
?>

再看:

<?
 //Header("Content-type: image/png");
 $im = ImageCreate (200, 250);
 $col_blk = ImageColorAllocate($im, 0,0,0);
 $col_orn = ImageColorAllocate($im, 255,192,0);
 $str="This is a test."; 
 ImageStringUp($im,1,10,180,$str,$col_orn);
 ImageStringUp($im,2,20,180,$str,$col_orn);
 ImageStringUp($im,3,40,180,$str,$col_orn);
 ImageStringUp($im,4,70,180,$str,$col_orn);
 ImageStringUp($im,5,110,180,$str,$col_orn);
 // 函数名换成了 ImageStringUp,用法不变。
 // 是输出竖排的文字。
 ImagePNG($im);
 ImageDestroy($im); 
?>

在使用输出字符的函数同时,如果能知道不同字型的字在图象里要占用的宽度、高度,对于安排输出字符的位置将是多么方便的啊!PHP提供给我们了:ImageFontWidth()和

ImageFontHeight(),其参数很简单,只有一个:即字型的编号。例如ImageFontWidth(5)就是取得5号字每个字符的宽度,ImageFontHeight(3)就是取得3号字每个字符的高度。这么

简单,就不举例了,等一下在后面的代码中还有用到。

跟输出字符串类似,ImageChar和ImageCharUp输出单个字符,用途比较少,甚至可以不用——无论字符还是字符串,都用ImageString和Im

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号