上次说到用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(),其参数很简单,只有一个: |