c($im,20,85,50,40,225,360,$col_grn); // 绿色的椭圆弧,中心在(20,85),横轴50,纵轴40,225度至360度。 // 由此可见,这里的圆弧始、终点是以角度计量, // 是以水平向右的方向为0度,顺时针计算的。 ImageArc($im,160,60,40,40,0,360,$col_orn); // 橙色的整圆。只要横轴长与纵轴长相等,就是正圆。 // 上高中我们就学过:圆是椭圆的特例嘛! // 最后再画一段圆弧。圆心能否在图象以外? ImageArc($im,160,140,240,240,0,360,$col_red); // 可以! ImagePNG($im); ImageDestroy($im); ?>
作图当然免不了要把某一区域涂成某种颜色。GD有三种着色方式,一种是矩形区域着色, 一种是指定的点所处的封闭区域着色,另一种是指定的颜色所包围的区域着色。看以下的例子: <? 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); ImageFilledRectangle($im,20,10,100,50,$col_blu); ImageFilledRectangle($im,5,40,50,90,$col_red); ImageFilledRectangle($im,40,80,100,95,$col_orn); ImageFilledRectangle($im,90,35,110,90,$col_yel); // 以上是第一种着色。直接绘制矩形。 // 我故意用四个不同颜色的矩形围起一小块区域, // 用以说明第二种着色。 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); ImageFilledRectangle($im,20,10,100,50,$col_blu); ImageFilledRectangle($im,5,40,50,90,$col_red); ImageFilledRectangle($im,40,80,100,95,$col_orn); ImageFilledRectangle($im,90,35,110,90,$col_yel); // 以上是第一种着色。直接绘制矩形。 // 我故意用四个不同颜色的矩形围起一小块区域, > // 用以说明第二种着色。 ImageFill($im,70,70,$col_grn); // 这是第二种着色。 ImageRectangle($im,120,40,190,90,$col_grn); // 暂且画一个矩形来做框吧。事实上任何样子的边界都可以做框。 ImageFilltoBorder($im,130,50,$col_grn,$col_orn); // 把绿色矩形框内涂成橙色。 // 只要指定的点位于这个“框”的范围内即可,与该点在区域内的位置无关。 // 这个函数其实是这样工作的: // 从指定的点开始,向外,寻找指定颜色的边界,如果找到,则停止, // 找不到,就把途经的点涂成需要的颜色。 ImagePNG($im); ImageDestroy($im); // 看一下效果。 // 现在我们作出的图已经是花花绿绿了,可是在浏览器里,图片上, // 右键->属性:只有 214 个字 |