| 网站首页 | 硬件维修 | 应用学院 | 网络组建 | 网站制作 | 菜鸟黑客 | 编程之道 | 数码大全 | 娱乐休闲 | 软件下载 | 在线视频 | 请您留言 | 技术论坛 | 
专 题 栏 目
最 新 热 门
最 新 推 荐
相 关 文 章
  • PHP与javascript对多项选…

  • HTML之影像地图

  • 巧用CSS制作图象特效

  • CSS2盒模型的3D示意图

  • CSS滤镜之FlipH、FlipV属性

  • CSS滤镜之alpha属性

  • CSS滤镜:alpha属性

  • CSS滤镜:FlipH、FlipV属性

  • 巧用CSS制作图象特效

  • CSS2盒模型的3D示意图

  • Q
    您现在的位置: 我是IT人 >> 网站制作 >> php >> 文章正文
    说说PHP作图         
    说说PHP作图
    作者:网络 文章来源:转载 点击数: 更新时间:2005-8-13
    [ 字体:缩小 正常 放大 | 双击自动滚屏 ]
    请选择合适的字体颜色:
      $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和ImageStringUp就可以了嘛!

        下面,我就利用我做过的绘制股票K线分析图的其中一部分代码,把前面讲到的内容系统
    应用一下。因为其中涉及数据库,不能把原始代码拿过来给大家拿回去测试。只能构造一些
    数据,模拟从数据库里取得的股市行情。鉴于这里懂股票K线的人可能不多,大家可能不知道K线
    图应该怎么画法。然而,我也不能在这里讲K线具体是怎么回事,只是介绍这样一系列方法。等画
    好以后,你肯定可以看出,以前确实见过这样的图。

    <?php
    Header("Content-type: image/png");

    $im = ImageCreate(640,260);
    $bkground = ImageColorAllocate($im,255,255,255);
    $data = ImageColorAllocate($im,0,0,0);
    $gird = ImageColorAllocate($im,200,200,160);
    $upline = ImageColorAllocate($im,255,0,0);
    $dnline = ImageColorAllocate($im,0,175,175);
    $d5line = ImageColorAllocate($im,255,127,0);
    $d20line = ImageColorAllocate($im,0,0,127);
    $d10line = ImageColorAllocate($im,255,0,255);
    // 先定义好绘各种对象所用的颜色。

    for($i=20;$i<=220;$i+=25)
      ImageLine($im, 60, $i, 560, $i, $gird);
    for($j=60;$j<=560;$j+=25)
      ImageLine($im, $j, 20, $j, 220, $gird);
    // 事先计算好位置、格子宽度,用for循环画线,省事多了。

    $zzg=10.55;  
    $zzd=7.63;
    $lzg=10350;
    // 假设的股市数据,
    // $zzg是需要分析的这一段时间的最高价,假设是10.55元。
    // $zzd是需要分析的这一段时间的最低价,假设是7.63元。
    // $lzg是需要分析的这一段时间的最高成交量,假设是10350手。
    // 这是计算坐标网格的“刻度”的重要数据。
    $bl=$zzg-$zzd;
    // 最高价跟最低价的差额。根据它跟网格总高度之间的比例,
    // 就可以得出一个实际的价格在网格里所处的位置。

    for($i=1;$i<=7;$i++)
      {
         $y=$i*25-10;
         // 根据网格线的位置计算标注刻度的合适高度(纵坐标)。
         $str=Number_Format($zzg-($i-1)/6*$bl,2,".",",");
         // 计算每根刻度线对应的价格、并格式化该字符串。
         $x=55-ImageFontWidth(2)*StrLen($str);
         // 根据这个字符串将要占用的宽度,计算出合适的横坐标。
         ImageString($im, 2,$x, $y,$str, $data);
         // 写出这个字符串。
      }

    $str=Number_Format($lzg,0,".",",")

    上一页  [1] [2] [3] [4] [5] [6] 下一页  

    文章录入:小秦    责任编辑:小秦 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    | 设为首页 | 加入收藏 | 联系站长 | 关于我们 | 友情链接 | 版权申明 |