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);
网友评论