首页 > 编程地带 > PHP-管理图形图像

PHP-管理图形图像

2007年11月8日 发表评论 阅读评论

一、管理画布
    1、创建画布
    

resource imagecreate(int x_size,int y_size);

    下面与imagecreate()搭配使用,把画布image转化为一副gif/png/jpg格式的图像并输出,参数filename为空时输出 其到浏览器上,否则 输出 到指定文件中。其中imagejpeg()中参数quality指定jpeg图像的质量,其值为0(最差)~~100(最好),默认值为75.
    

int imagegif(resource image&#91;,string filename&#93;)<br />    int imagejpeg(resource image&#91;,string filename&#91;,int quality&#93;&#93;)<br />    int imagepng(resouce image&#91;,string filename&#93;);

    下面的函数打开一副 已经存在的图像,相当于imagecreate()和inage*的组合,返回值为打开的图像标识,和imagecreate()的返回值类型相同。
    

resource imagecreatefromgif (string filename)<br />    resource imagecreatefromjpeg (string filename)<br />    resource imagecreatefrompng (string filename)

    
    2、复制画布
    

int imagecopy( resource dst_im,resource src_im,int dst_x,int dst_y,int src_x,int src_y,int src_w,int src_h)

    复制画布并调整大小:
    

int imagecopyresized( resource dst_im,resource src_im,int dstX,int dstY,int srcX,int srcY,int dstW,int dstH,int srcW,int srcH)

    
    3、销毁画布
    

int imagedestroy (resource image)

    示例:
    [codes=php]
          $im=imagecreate(300,100);
      $red=imagecololrallocate($im,255,0,0);
      $white=imagecolorallocate($im,255,255,255);
      imagestring($im,10,20,20,”hello woyigui”,$white);
      imagejpeg($im);
      imagedestroy($im);
    ?>
    [/codes]
    
二、获得图像大小
    

array getimagesize(string filename&#91;,array imageinfo&#93;)

       获取图像的大小,返回值为数组,arr[0]为图像高度;arr[1]为宽度;arr[2]为文件格式:1,表示gif 2,表示jpeg  3,表示png;arr[3]为图片的高与宽字符串,开如height=xxx widht=yyy.
    

int imagesx(resource image)

//获取图像的宽度。
    

int imagesy(resource image)

//获取图像的高度。
    
    示例:
    [codes=php]
            $image_info=getimagesize(“.\\logo.gif”);
        echo “height:$image_info[0]
“;
        echo “width:$image_info[1]
“;
        echo “type:$image_info[2]
“;
        echo “sizestring:$image_info[3]
“;
    ?>
    [/codes]
    
三、向图像中加入文字
    

int imagestring(resource inage,int font,int X,int y,string s,int color)

    在画布image的(x,y)处中写入文字,字体颜色为color,字形为font。
    
四、画点
    

int imagesetpixel(resource image,int x,int y,int color)

    
    示例:
    [codes=php]
            $im=imagecreate(1000,1000);
        $white=imagecolorallocate($im,255,255,255);
        $red=imagecolorallocate($im,255,0,0);
        for($x=0;$x<1000;$x++){
            $y=100*sin($x/200*pi();
            imagesetpixel($im,$x,$y+100,$red);
        }
        imagepng($im);
        imagedestroy($im);
    ?>
    [/codes]
    
五、画几何图形
    1、画圆弧
      

int imagearc(resource image,int cx,int w,int h,int s,int e,int color)

    2、画虚线
      

int imagedashedline(resource image,int x1,int y1,int x2,int y2,int color)

    3、画实线
      

int imageline(resource image,int x1,int y1,int x2,int y2,int color)

    4、画多边形
      

int imagepolygon(resource image,array points,int num_points,int color)

    5、画矩形
      

int imagerectangle(resource image,int x1,int y1,int x2,int y2,int color)

      
      
    示例:
    [codes=php]
            //创建画布
        $im=imagecreate(1000,1000);
        $white=imagecolorallocate($im,255,255,255);
        $black=imagecolorallocate($im,0,0,0);
        
        //画圆弧
        imagearc($im,100,100,200,100,90,270,$black);
        imagearc($im,200,100,200,100,0,360,$black);
        
        //画虚线
        imagedashedline($im,310,50,400,200,$black);
        
        //画实线
        imageline($im,320,50,410,200,$black);
        
        //画多边形
        $points_arr=array(450,10,480,40,550,450,120,430,70);
        imagepolygon($im,$points_arr,5,$black);
        
        //画矩形
        imagerectangle($im,600,50,700,200,$black);
        
        imagepng($im);
        imagedestroy($im);
     ?>
     [/codes]
    
    
六、填充几何图形
    

<br />    int imagefill(resource image,int x,int y,int color)<br />    int imagefilledarc( resource image,int cx,int cy,int w,int h,int s ,int e,int color,int style)<br />    int imagefilledpolygon( resource image,array points,int num_point,int color)<br />    int imagefilledrecttangle( resource image,int x1,int y1,int x2,int y2,int color)<br />

    
    其中style指定其填充风格:
    

IMG_ARC_PIE:填充用直线连接起始点和终止点和起始点,以及终止点和圆心相连构成的封闭区域。<br />    IMG_ARC_CHORD:不填充,只用弧线连接起始点和终止点。<br />    IMG_ARC_NOFILL:不填充,只用直线连接起始点和终止点。<br />    IMG_ARC_EDGED:填充起始点和终止点和圆心相连构成的封闭区域。

    
    
    示例:
    [codes=php]
             $im=imagecreate(1000,1000);
         $white=imagecolorallocate($im,255,255,255);
         $red=imagecolorallocate($im,255,0,0);
         imagefill($im,500,500,$red);
         $black=imagecolorallocate($im,0,0,0);
        
        
         //填充圆弧
         imagefilledarc($im,100,100,200,100,0,270,$black,4);
         imagefilledarc($im,200,100,200,100,0,270,$black,4);
        
         //填充多边形
         $poing_arr=arrar(450,10,  480,40,  550,80,  450,120,   430,70);
         imagefilledpolygon($im,$poing_arr,5,$black);
        
         imagepng($im);
         imagedestroy($im);
    ?>
    [/codes]
      
      

转载请注明:woyigui's blog [http://www.woyigui.cn/]
本文标题:PHP-管理图形图像
本文地址:http://www.woyigui.cn/2007/11/08/php%E7%AE%A1%E7%90%86%E5%9B%BE%E5%BD%A2%E5%9B%BE%E5%83%8F/

分类: 编程地带 标签: ,
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.
*