美文网首页
开发企业网站 --GD画图 -- 生成图形和文字

开发企业网站 --GD画图 -- 生成图形和文字

作者: 潘肚饿兵哥哥 | 来源:发表于2019-09-25 22:25 被阅读0次

    \color{rgba(254, 67, 101, .8)}{基础图形及文字生成}

    <?php
        /* 
        
            使用php的gd库处理图像
                首先要开启gd库,但是套件可以直接点勾上就可以了
    
            作图的步骤:
                1.创建画布
                2.准备颜色
                3.画图(包括字符串)
                4.显示图像/存储图像
                5.销毁画布资源
    
        */
        header("content-type: image/png;");//告诉浏览器文件类型
        // $im = imagecreatetruecolor(800, 600);//创建画布
        $im = imagecreatefromjpeg('123.jpg');//也可以用一张图片当做背景
        
        //画像素点
        //第一个参数:在哪张画布上画
        //后面参数:颜色值
        $red = imagecolorallocate($im, 255, 0, 0);
        $green = imagecolorallocate($im, 0, 255, 0);
        $blue = imagecolorallocate($im, 0, 0, 255);
        $white = imagecolorallocate($im, 255, 255, 255);
        $yellow = imagecolorallocate($im, 255, 255, 0);
        $purple = imagecolorallocate($im, 255, 0, 255);
    
        //第一个参数:在哪张画布上画
        //第二、三个参数:起始坐标(画布在第四象限)
        //第四个参数:用什么颜色
        imagesetpixel($im, 50, 60, $white);
    
        //画线段
        //前两个数字是起始坐标,后两个数字是结束坐标
        imageline($im, 20, 30, 60, 80, $white);
    
        //画矩形:也是两个坐标
        //一条对角线能确定一个矩形
        //第一种是画一个无填充色的矩形
        //第一种是画一个填充绿色的矩形(绿色的色块)
        imagerectangle($im, 120, 30, 230, 140, $red);
        imagefilledrectangle($im, 240, 30, 350, 140, $green);
    
        //画椭圆/圆
        //前两个值是圆心坐标,后两个值是宽、高
        //第二种是画圆形色块
        imageellipse($im, 415, 85, 110, 110, $blue);
        imagefilledellipse($im, 535, 85, 110, 110, $yellow);
    
        //画多边形
        //先建一个数组,数组每两个数为一个坐标,每个坐标代表一个多边形的角
        //count($points)/2 表示假如有6个数,除以2就是3,就表示这是一个三角形
        //第二种写法是填充颜色的多边形
        $points = 
        [
            50, 120, 
            50, 260,
            150, 260,
        ];
        imagepolygon($im, $points, count($points)/2, $purple);
    
        $points = 
        [
            200, 120, 
            200, 260,
            350, 260,
        ];
        imagefilledpolygon($im, $points, count($points)/2, $yellow);
    
        //画圆弧
        //参数:前两个是圆心,第3、4个是宽、高,第5、6个角度,角度可以是负数
        //其实画圆弧相当于画一个扇形,然后不显示两条直线
        //第二个是填充颜色的圆弧,多最后一个参数,是填充模式,把这个圆弧填充成什么形状的色块
        /* 
        style有4个常量,
        1.IMG_ARC_PIE      扇形
        2.IMG_ARC_CHORD    三角形(除开圆弧的那部分,剩下扇形成三角形)
        3.IMG_ARC_NOFILL   圆弧本身
        4.IMG_ARC_EDGED    扇形
        */
    
        imagearc($im, 150, 350, 150, 150, 0, 90, $white);
        imagefilledarc($im, 150, 350, 150, 150, 180, 270, $red, IMG_ARC_PIE);
    
        //写字:字符串(非中文)
        //第一个值是字号,第2/3个是坐标,第四个是要写的字符串,第五是眼色
        //字号就是1 2 3 4 5 ,5种,5号最大
        imagestring($im, 5, 50, 400, 'Chinese', $yellow);
    
        //写字:一个字符(非中文)
        imagechar($im, 5, 50, 450, 'A', $yellow);
    
        //写中文
        //1.字体大小 2. 角度 3-4.坐标 5.颜色 6.字体名字 7.要写的内容
        //字体文件要用绝对路径C:\Windows\Fonts,复制字体文件到项目中然后用相对路径报错:无法找到字体
        //字体名称不能用中文写,否则不显示
        imagettftext($im, 30, 30, 500, 400, $white, 'C:/Windows/Fonts/simsun.ttc', '一带一路');
    
    
        imagepng($im);//有两个参数,有第二个就是存储,没有就是显示
        imagedestroy($im);//销毁画布资源
    ?>
    

    \color{rgba(254, 67, 101, .8)}{用黑色背景生成}

    image.png

    \color{rgba(254, 67, 101, .8)}{用背景图片生成}

    image.png

    相关文章

      网友评论

          本文标题:开发企业网站 --GD画图 -- 生成图形和文字

          本文链接:https://www.haomeiwen.com/subject/ihaquctx.html