要使用PHP绘图,就得在php.ini文件中设置一下

找到这个位置 ;extension=php_gd2.dll,然后把前面的分号去掉,重启下apache就可以了

几乎每行代码我都写了注释,方便看懂

<?php
    
    //PHP绘图技术

//创建画布,默认背景是黑色
    $im=imagecreatetruecolor(400,300);

//绘制需要的各种图形
    //创建一个颜色
    $red=imagecolorallocate($im,255,0,0);
    
    //画圆,5个参数(画布,圆心xy,宽高,颜色)
    imageellipse($im,20,20,20,20,$red);
    
    //画直线,6个参数(画布,起点xy,终点xy,颜色)
    imageline($im,0,0,400,300,$red);

//画矩形
    imagerectangle($im,0,0,40,50,$red);

//填充矩形
    imagefilledrectangle($im,0,0,40,50,$red);

//弧线,8个参数(画布,圆心xy,宽高,起点角度,终点角度,颜色) 以3点钟方向为0度,顺时针画圆弧
    imagearc($im,100,100,50,50,180,270,$red);
    
    //扇形
    imagefilledarc($im,100,100,50,50,180,270,$red,IMG_ARC_PIE);

//拷贝图片
    //1.加载原图片
    //$srcImage=imagecreatefrompng("a.png");

//获取图片的大小
    //$srcImageInfo=getimagesize("a.png");

//拷贝原图片到目标画布,8个参数(目标画布,源图片,画布位置xy,源图片起始坐标xy,宽高)
    //imagecopy($im,$srcImage,0,0,0,0,$srcImageInfo[0],$srcImageInfo[1]);

//写字
    //imagestring($im,5,0,0,"hello,world哈哈",$red);此函数比较弱
    $str="hello哈哈";
    imagettftext($im,30,0,50,50,$red,"simsun.ttc",$str);

//输出图像到网页,也可以另存
    header("content-type:image/png");
    imagepng($im);

//销毁该图片(释放内存)

imagedestory($im);
?>

画出的图形还有文字大概是这样的,字符编码需使用UTF-8

对于PHP绘图技术的理解的更多相关文章

  1. Windows 窗体的.Net 框架绘图技术

    当编写一个典型的Windows 窗体程序时,窗体和控件的绘制.效果等操作是不需要特别加以考虑的.这是为什么呢?因为通过使用 .Net 框架,开发人员可以拖动一系列的控件到窗体上,并书写一些简单的与事件 ...

  2. 【PHP绘图技术&&验证码绘制】

    PHP绘图是比较简单的事情,基本绘图如直线.圆.矩形.弧线.填充矩形.填充扇形.非中文字的打印.中文文字的打印在在下面的代码中会纤细讲解. 需要支持中文的字体,可以到windows自带的字体库中找,并 ...

  3. PHP自学之路---报表及绘图技术

    Ø  报表 a)        什么是报表 报表就是用表格.图表等格式来动态显示数据. b)        PHP绘图坐标系 1.  坐标系介绍 下图说明了PHP坐标系.坐标原点位于左上角,以像素为单 ...

  4. PHP 绘图技术

    1.图片格式:目前网站开发常见的图片格式有gif,jpg/jpeg,png ..... 区别: gif 图片压缩率高,但是只能显示256色,可能造成颜色的丢失,可以显示动画 jpg/jpeg 图片压缩 ...

  5. 【二十七】php之绘图技术(gd、jpgraph、短信随机验证码)

    1.绘图技术(GD库) 注意:使用该库,php.ini文件中的extension=php_gd2.dll必须是开启状态,不然无法使用 图片格式:目前网站开发常见的图片格式有gif,jpg/jpeg,p ...

  6. 【MFC】MFC绘制动态曲线,用双缓冲绘图技术防闪烁

    摘自:http://zhy1987819.blog.163.com/blog/static/841427882011614103454335/ MFC绘制动态曲线,用双缓冲绘图技术防闪烁   2011 ...

  7. 【转 | 侵删】2D 绘图技术中的坐标系统与坐标变换

    本文介绍在 2D 绘图技术中的坐标系统和坐标变换的相关知识.同时介绍 Kity 在这方面提供的 API .希望这些知识对于需要进行图形应用开发的同学会有所帮助. 锤子的故事 很久以前,有一个画家,他很 ...

  8. java基础 绘图技术.坦克大战 之java绘图坐标体系(一)

    坐标体系介绍 下图说明了java坐标体系.坐标原点位于左上角,以像素为单位,像素是计算机屏幕上最小的显示单位.在java的坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素:第二个 ...

  9. .NET学习之路----我对P/Invoke技术的理解(一)

    看了P/Invoke技术的介绍,于是想写下点东西,东西包含两个部分:知识的纪录和我的理解及疑问. r托管代码中调用非托管API函数的过程 1.定位包含API的DLL: 2.载入DLL 3.找到DLL中 ...

随机推荐

  1. MySQL数据库(8)----表的创建、删除、索引和更改

    MySQL允许使用 CREATE TABLE 语句和 DROP TABLE 语句来创建.删除表,使用 ALTER TABLE 语句更改其结构.CREATE INDEX 语句和 DROP INDEX 语 ...

  2. EF6 按条件更新多行记录的值

    using (var db = new MyDbContext()) { string fromUser = ""; //sender string toUser = " ...

  3. The memory graph Shared by the method

    Phone类 package com.itheima_03; /* * 手机类 */ public class Phone { String brand; int price; String colo ...

  4. 读<css世界>笔记之img标签

    Web开发时,为了节约带宽以及提高加载性能,首屏以下的图片就会通过滚屏加载的方式异步加载,然后这个即将被异步加载的图片为了布局稳健,体验良好,往往会使用一张透明的图片占位,如: <img src ...

  5. 浅谈count(*)、count(1)、count(列名)

    count(*) 和 count(1)和count(列名)区别  执行效果上:  count(*)包括了所有的列,相当于行数,在统计结果的时候,不会忽略列值为NULL  count(1)包括了所有列, ...

  6. hibernate对象的三种状态及转换

    一.hibernate对象三种状态 Transient(瞬时状态):没有session管理,同时数据库没有对应记录 举例:new 出来的对象还没有被session管理,此时该对象处于Transient ...

  7. [翻译] JHChainableAnimations

    JHChainableAnimations - (void)animationType_01 { /* * 缩放到0.8倍(执行spring动画效果的缩放)持续时间0.5s,完成了之后移动100的距离 ...

  8. [翻译] ZFTokenField

    ZFTokenField 本人视频教程系类   iOS中CALayer的使用 效果图: iOS custom view that let you add token view inside like ...

  9. mysql DML语句学习1

    DML 操作是指对数据库中表记录的操作,主要包括表记录插入(insert).更新(update).删除(delete)和查询(select) 1. 插入记录 表创建好后,就可以往里插入记录,基本语句如 ...

  10. PTA | Maximum Subsequence Sum

    Given a sequence of K integers { N​1​​, N​2​​, ..., N​K​​ }. A continuous subsequence is defined to ...