快速业务通道

说说PHP作图(二)

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-26
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 个字

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号