13.1.3 绘制各种图形

13.1.3 绘制各种图形

imagefill -- 区域填充
语法:bool imagefill(resource image,int x,int y, int color)
imagefill() 在 image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充(即与 x, y 点颜色相同且相邻的点都会被填充)。
imagesetpixel -- 画一个单一像素
语法:bool imagesetpixel ( resource image, int x, int y, int color )
imagesetpixel() 在 image 图像中用 color 颜色在 x,y 坐标(图像左上角为 0,0)上画一个点。
imageline -- 画一条线段
语法:bool imageline ( resource image, int x1, int y1, int x2, int y2, int color )
imageline() 用 color 颜色在图像 image 中从坐标 x1,y1 到 x2,y2(图像左上角为 0, 0)画一条线段。

imagerectangle -- 画一个矩形
语法:bool imagerectangle ( resource image, int x1, int y1, int x2, int y2, int col )
imagerectangle() 用 col 颜色在 image 图像中画一个矩形,其左上角坐标为 x1, y1,右下角坐标为 x2, y2。图像的左上角坐标为 0, 0。
imagefilledrectangle -- 画一矩形并填充
语法:bool imagefilledrectangle ( resource image, int x1, int y1, int x2, int y2, int color )
imagefilledrectangle() 在 image 图像中画一个用 color 颜色填充了的矩形,其左上角坐标为 x1,y1,右下角坐标为 x2,y2。0, 0 是图像的最左上角。

imageellipse -- 画一个椭圆
语法:bool imageellipse ( resource image, int cx, int cy, int w, int h, int color )
imageellipse() 在 image 所代表的图像中画一个中心为 cx,cy(图像左上角为 0, 0)的椭圆。w 和 h 分别指定了椭圆的宽度和高度,椭圆的颜色由 color 指定。
imagefilledellipse -- 画一椭圆并填充
语法:bool imagefilledellipse ( resource image, int cx, int cy, int w, int h, int color )
imagefilledellipse() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)为中心画一个椭圆。w 和 h 分别指定了椭圆的宽和高。椭圆用 color 颜色填充。如果成功则返回 TRUE,失败则返回 FALSE。

imagearc -- 画椭圆弧
bool imagearc ( resource image, int cx, int cy, int w, int h, int s, int e, int color )
imagearc() 以 cx,cy(图像左上角为 0, 0)为中心在 image 所代表的图像中画一个椭圆弧。w 和 h 分别指定了椭圆的宽度和高度,起始和结束点以 s 和 e 参数以角度指定。0°位于三点钟位置,以顺时针方向绘画。
imagefilledarc -- 画一椭圆弧且填充
bool imagefilledarc ( resource image, int cx, int cy, int w, int h, int s, int e, int color, int style )
imagefilledarc() 在 image 所代表的图像中以 cx,cy(图像左上角为 0, 0)画一椭圆弧。如果成功则返回 TRUE,失败则返回 FALSE。w 和 h 分别指定了椭圆的宽和高,s 和 e 参数以角度指定了起始和结束点。style 可以是下列值按位或(OR)后的值:
IMG_ARC_PIE IMG_ARC_CHORD
IMG_ARC_NOFILL IMG_ARC_EDGED

imagestring -- 水平地画一行字符串
语法:bool imagestring ( resource image, int font, int x, int y, string s, int col )
imagestring() 用 col 颜色将字符串 s 画到 image 所代表的图像的 x,y 坐标处(这是字符串左上角坐标,整幅图像的左上角为 0,0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。
imagestringup -- 垂直地画一行字符串
语法:bool imagestringup ( resource image, int font, int x, int y, string s, int col )
imagestring()用 col 颜色将字符串 s 垂直地画到 image 所代表的图像的 x, y 座标处(图像的左上角为 0, 0)。如果 font 是 1,2,3,4 或 5,则使用内置字体。

imagechar -- 水平地画一个字符
语法:bool imagechar ( resource image, int font, int x, int y, string c, int color )
imagechar() 将字符串 c 的第一个字符画在 image 指定的图像中,其左上角位于 x,y(图像左上角为 0, 0),颜色为 color。如果 font 是 1,2,3,4 或 5,则使用内置的字体(更大的数字对应于更大的字体)。
imagecharup -- 垂直地画一个字符
语法:bool imagecharup ( resource image, int font, int x, int y, string c, int color )
imagecharup() 将字符 c 垂直地画在 image 指定的图像上,位于 x,y(图像左上角为 0, 0),颜色为 color。如果 font 为 1,2,3,4 或 5,则使用内置的字体。
imagettftext -- 用 TrueType 字体向图像写入文本
语法 :array imagettftext ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )

<?php
    $im = imagecreatetruecolor(400, 30);     //创建400x300像素大小的画布
    $white = imagecolorallocate($im, 255, 255, 255);  //创建白色
    $grey = imagecolorallocate($im, 128, 128, 128);   //创建灰色
    $black = imagecolorallocate($im, 0, 0, 0);           //创建黑色
    imagefilledrectangle($im, 0, 0, 399, 29, $white);     //使用白色作为背景
     //如果有中文输出,需要将其转码,转换为UTF-8的字符串才可以直接传递
    $text=iconv("GB2312", "UTF-8", "LAMP兄弟连--无兄弟,不编程!");
    $font = ‘simsun.ttc’;   //指定字体,将系统中对应字体复制到当前目录下
    imagettftext($im, 20, 0, 12, 21, $grey, $font, $text);   //输出灰色字串作为阴影
    imagettftext($im, 20, 0, 10, 20, $black, $font, $text);  //输出一个黑色的字符串
    header("Content-type: image/png");  //通知浏览器将输出格式为PNG的图像
    imagepng($im);  //向浏览器中输出PNG格式的图像
    imagedestroy($im);      //销毁资源,释放内存占用的空间

demo.html

<img src="test.php" />

test.php

<?php
    //1 创建资源(画布的大小)
    $img = imagecreatetruecolor(200, 200);  
    //设置画布的颜色
    $white =  imagecolorallocate($img, 0xFF, 0xFF, 0xFF);
    $red =  imagecolorallocate($img, 255, 0, 0);
    $blue =  imagecolorallocate($img, 0, 0, 0XFF);
    $pink =  imagecolorallocate($img, 0XFF, 0, 0XFF);
    $green =  imagecolorallocate($img, 0, 0xFF, 0);
    
    
    imagefill($img, 0, 0, $white);
    //2. 制作各种颜色
    
    imageline($img, 0,0, 200,200, $blue);
    imageline($img, 200, 0, 0, 200, $red);


    //画矩形
    imagerectangle($img, 50, 50, 150, 150, $pink);
    imagefilledrectangle($img, 75,75, 125,125, $blue);
    
    //画圆
    imageellipse($img, 50, 50, 100, 100, $red);
    imagefilledellipse($img, 150, 150, 100, 100, $red);


    //画弧形
    imagearc($img, 150, 50, 100, 100,  -90, 0, $blue);


    //画一个字符串
    imagestring($img, 5, 50, 150, "hello world", $blue);
    imagestringup($img, 5, 50, 150, "hello world", $blue);

    //3. 画出各种图形,和写(画出)字
    imagettftext($img, 30, 0, 10, 100, $green, "./simkai.ttf", "妹子漂亮吗?");
    imagettftext($img, 30, 0, 13, 103, $red, "./simkai.ttf", "妹子漂亮吗?");

    //4保存,或输出给浏览, 写第二个参数就是保存
    header("Content-Type:images/gif");

    imagegif($img);

    //5. 释放资源
    imagedestroy($img);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,457评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,837评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,696评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,183评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,057评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,105评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,520评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,211评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,482评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,574评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,353评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,213评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,576评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,897评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,489评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,683评论 2 335

推荐阅读更多精彩内容

  • PHP中GD库的使用 GD简介 PHP 不仅限于只产生 HTML 的输出,还可以创建及操作多种不同格式的图像文件。...
    dptms阅读 1,000评论 0 2
  • 本文讲解常用GD函数的应用 1.一个简单的图像 我们先看一个例子: 运行结果: 这段代码中我们用了一下几个函数: ...
    老马的春天阅读 1,547评论 2 8
  • 背景 验证码就是把一串随机产品的数字动态生成一幅图片,再加上干扰元素。此时用户可以通过肉眼能识别里面的数字或者字符...
    dy2903阅读 2,046评论 0 7
  • pygame图形接口 使用pygame.image模块,可以对图像进行读取和保存。 使用pygame.image....
    sssally92阅读 17,296评论 1 25
  • 旧福印上压了新福, 黏着油垢的锅被刷洗了干净, 锅里的鸡和上次的鸡, 一个走了一生另一个走了十二年, 一个去远足另...
    葡萄美酒阅读 233评论 0 0