美文网首页
开发企业网站 --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