400-696-8028

图形处理函数库

长沙北大青鸟作者:科泰校区佚名

摘要:   使用本功能需要在编译 PHP 前先安装 GD library,可到 <?php Header ( "Content-type: image/gif" ); $im = imagecreate ( 400 , 30 ); $black = ImageColorAllocate ( $im , 0
 

    使用本功能需要在编译 PHP 前先安装 GD library,可到 img/4.20.gif

<?php
Header ( "Content-type: image/gif" );
$im = imagecreate ( 400 , 30 );
$black = ImageColorAllocate ( $im , 0 , 0 , 0 );
$white = ImageColorAllocate ( $im , 255 , 255 , 255 );
imageline ( $im , 1 , 1 , 350 , 25 , $black );
imagearc ( $im , 200 , 15 , 20 , 20 , 35 , 190 , $white );
imagestring ( $im , 5 , 4 , 10 , "Graph TEST!!" , $white );
ImageGif ( $im );
ImageDestroy ( $im );
?>

GetImageSize : 取得图片的长宽。
ImageArc : 画弧线。
ImageChar : 写出横向字符。
ImageCharUp : 写出直式字符。
ImageColorAllocate : 匹配颜色。
ImageColorTransparent : 指定透明背景色。
ImageCopyResized : 复制新图并调整大小。
ImageCreate : 建立新图。
ImageDashedLine : 绘虚线。
ImageDestroy : 结束图形。
ImageFill : 图形着色。
ImageFilledPolygon : 多边形区域着色。
ImageFilledRectangle : 矩形区域着色。
ImageFillToBorder : 指定颜色区域内着色。
ImageFontHeight : 取得字型的高度。
ImageFontWidth : 取得字型的宽度。
ImageInterlace : 使用交错式显示与否。
ImageLine : 绘实线。
ImageLoadFont : 载入点阵字型。
ImagePolygon : 绘多边形。
ImageRectangle : 绘矩形。
ImageSetPixel : 绘点。
ImageString : 绘横式字符串。
ImageStringUp : 绘直式字符串。
ImageSX : 取得图片的宽度。
ImageSY : 取得图片的高度。
ImageTTFBBox : 计算 TTF 文字所占区域。
ImageTTFText : 写 TTF 文字到图中。
ImageColorAt : 取得图中指定点颜色的索引值。
ImageColorClosest : 计算色表中与指定颜色最接近者。
ImageColorExact : 计算色表上指定颜色索引值。
ImageColorResolve : 计算色表上指定或最接近颜色的索引值。
ImageColorSet : 配置色表上指定索引的颜色。
ImageColorsForIndex : 取得色表上指定索引的颜色。
ImageColorsTotal : 计算图的颜色数。
ImagePSLoadFont : 载入 PostScript 字型。
ImagePSFreeFont : 卸下 PostScript 字型。
ImagePSEncodeFont : PostScript 字型转成向量字。
ImagePSText : 写 PostScript 文字到图中。
ImagePSBBox : 计算 PostScript 文字所占区域。
ImageCreateFromPNG : 取出 PNG 图型。
ImagePNG : 建立 PNG 图型。
ImageCreateFromGIF : 取出 GIF 图型。
ImageGIF : 建立 GIF 图型。

GetImageSize
取得图片的长宽。
语法: array getimagesize(string filename, array [imageinfo]);
返回值: 数组
函数种类: 图形处理

内容说明: 本函数可用来取得 GIF、JPEG 及 PNG 三种 WWW 上图片的高与宽,不需要安装 GD library 就可以使用本函数。返回的数组有四个元素。返回数组的第一个元素 (索引值 0) 是图片的高度,单位是像素 (pixel)。第二个元素 (索引值 1) 是图片的宽度。第三个元素 (索引值 2) 是图片的文件格式,其值 1 为 GIF 格式、 2 为 JPEG/JPG 格式、3 为 PNG 格式。第四个元素 (索引值 3) 为图片的高与宽字符串,height=xxx width=yyy。可省略的参数 imageinfo 用来取得一些图片的相关信息,例如 IPTC (http://www.xe.net/iptc) 的 APP13 标记,就可以加在图片中,可利用 iptcparse() 来解析。

使用范例
<?php
function MyImg($imgfile) {
$size = GetImageSize($imgfile);
echo "<img src="$imgfile" $size[3]>";
}
MyImg("img/img1.gif");
MyImg("img/img2.png");
?>

ImageArc
画弧线。
语法: int imagearc(int im, int cx, int cy, int w, int h, int s, int e, int col);
返回值: 整数
函数种类: 图形处理

内容说明: 本函数用来画弧线。原点坐标 (0,0) 为图片的左上角,参数 cx、cy 为椭圆心坐标,参数 w 为水平轴长,参数 h 为垂直轴长,参数 s 及 e 分别为起始角与结束角,参数 col 为弧线的颜色。参数 im 表示图形的 handle。

ImageCharUp
写出直式字符。
语法: int imagecharup(int im, int font, int x, int y, string c, int col);
返回值: 整数
函数种类: 图形处理

内容说明: 本函数用来书写直式的字符。原点坐标 (0,0) 为图片的左上角,参数 font 表示字体的大小,从最小的 1 起,参数 x、y 是写入字符的坐标值,参数 c 为欲写出的字符,参数 col 为字的颜色。参数 im 表示图形的 handle。
参考: ImageLoadFont()

ImageColorAllocate
匹配颜色。
语法: int imagecolorallocate(int im, int red, int green, int blue);
返回值: 整数
函数种类: 图形处理

内容说明: 本函数用来匹配图形的颜色,供其它绘图函数使用。参数 im 表示图形的 handle。参数 red、green、blue 是色彩三原色,其值从 0 至 255。

使用范例
<?
$white = ImageColorAllocate($im, 255,255,255);
$black = ImageColorAllocate($im, 0,0,0);
?>

ImageCopyResized
复制新图并调整大小。
语法: int imagecopyresized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数可复制新图,并重新调整图片的大小尺寸。参数都是目的在前,来源在后。参数 dst_im 及 src_im 为图片的 handle。参数 dstX、dstY、srcX、srcY 分别为目的及来源的坐标。参数 dstW、dstH、srcW、srcH 分别为来源及目的的宽及高,若欲调整新图的尺寸就在这儿配置。

ImageCopyResized
复制新图并调整大小。
语法: int imagecopyresized(int dst_im, int src_im, int dstX, int dstY, int srcX, int srcY, int dstW, int dstH, int srcW, int srcH);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数可复制新图,并重新调整图片的大小尺寸。参数都是目的在前,来源在后。参数 dst_im 及 src_im 为图片的 handle。参数 dstX、dstY、srcX、srcY 分别为目的及来源的坐标。参数 dstW、dstH、srcW、srcH 分别为来源及目的的宽及高,若欲调整新图的尺寸就在这儿配置。

ImageDashedLine
绘虚线。
语法: int imagedashedline(int im, int x1, int y1, int x2, int y2, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将在图形上画出一条虚线。从 x1、y1 连接到 x2、y2,原点 (0,0) 为图形的左上角。参数 col 为虚线的颜色。
参考: ImageLine()

ImageDestroy
结束图形。
语法: int imagedestroy(int im);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将图片 handle 解构,释于内存空间。参数 im 为 ImageCreate() 所建立的图片 handle。

ImageFilledPolygon
多边形区域着色。
语法: int imagefilledpolygon(int im, array points, int num_points, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将图片的封闭多边形区域着色。参数 points 为数组,代表多边形区域,数组的偶数元素为 X 坐标,奇数元素为 Y 坐标,例如 points[0] = x0、points[1] = y0、points[2] = x1、points[3] = y1。参数 num_points 为多边形的转折点数目。参数 col 表示欲涂上的颜色。

ImageFilledRectangle
矩形区域着色。
语法: int imagefilledrectangle(int im, int x1, int y1, int x2, int y2, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将图片的封闭长方形区域着色。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示欲涂上的颜色。

ImageFillToBorder
指定颜色区域内着色。
语法: int imagefilltoborder(int im, int x, int y, int border, int col);
返回值: 整数
函数种类: 图形处理
内容说明
本函数将图片中指定的颜色做为边界,着色在其中的封闭区域之中。参数 x、y 为着色区内的坐标,原点 (0,0) 为图形的左上角。参数 border 为颜色值,表填入颜色的边界范围。参数 col 表示欲涂上的颜色。

ImageFontHeight
取得字型的高度。
语法: int imagefontheight(int font);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来取得指定字型的高度,单位为像素 (pixel)。
参考 ImageFontWidth() ImageLoadFont()

ImageFontWidth
取得字型的宽度。
语法: int imagefontwidth(int font);
返回值: 整数
函数种类: 图形处理
内容说明
本函数用来取得指定字型的宽度,单位为像素 (pixel)。
参考 ImageFontHeight() ImageLoadFont()

ImageInterlace
使用交错式显示与否。
语法: int imageinterlace(int im, int [interlace]);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来决定图片是否使用交错式显示 (interlace)。欲使用交错式显示,则将参数 interlace 值设为 1。不想使用交错式显示图形则将之设为 0。返回值 1 表示已配置成交错式、0 表示已设成非交错式。


ImageLine
绘实线。
语法: int imageline(int im, int x1, int y1, int x2, int y2, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将在图形上画出一条实线。从 x1、y1 连接到 x2、y2,原点 (0,0) 为图形的左上角。参数 col 为实线的颜色。
参考 ImageDashedLine()

ImageLoadFont
载入点阵字型。
语法: int imageloadfont(string file);
返回值: 整数
函数种类: 图形处理
内容说明
本函数用来载入用户自订的点阵字型。返回值为字型的代号,此值为大于 5 的整数。字型文件的格式如表

byte偏移类型说明
0-3int文件中字符的数目
4-7int字型的启始 ASCII 字符,例如从 ASCII 32 的空白开始
8-11int字符的宽度
12-15int字符的高度
16以后char字符的位值,也就是点阵的内容

参考 ImageFontHeight() ImageFontWidth()

ImagePolygon
绘多边形。
语法: int imagepolygon(int im, array points, int num_points, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数可在图片上绘出多边形。参数 points 为数组,代表多边形区域,数组的偶数元素为 X 坐标,奇数元素为 Y 坐标,例如 points[0] = x0、points[1] = y0、points[2] = x1、points[3] = y1。参数 num_points 为多边形的转折点数目。参数 col 表示多边形线的颜色。

ImageRectangle
绘矩形。
语法: int imagerectangle(int im, int x1, int y1, int x2, int y2, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数可在图片上绘出长方形。参数 x1、y1 及 x2、y2 分别为矩形对角线的坐标。参数 col 表示矩形边框的颜色。

ImageSetPixel
绘点。
语法: int imagesetpixel(int im, int x, int y, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数可在图片上绘出一点。参数 x、y 为欲绘点的坐标,参数 col 表示该点的颜色。

ImageString
绘横式字符串。
语法: int imagestring(int im, int font, int x, int y, string s, int col);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数在图片上绘出水平的横式字符串。参数 font 为字形,设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。
参考 ImageLoadFont()

ImageStringUp
绘直式字符串。
语法: int imagestringup(int im, int font, int x, int y, string s, int col);
返回值: 整数
函数种类: 图形处理
内容说明
本函数在图片上绘出铅直的直式字符串。参数 font 为字形,设为 1 到 5 表示使用默认字形。参数 x、y 为字符串起点坐标。字符串的内容放在参数 s 上。参数 col 表示字符串的颜色。
参考 ImageLoadFont()

ImageSX
取得图片的宽度。
语法: int imagesx(int im);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来取得图片的宽度数值。

ImageSY
取得图片的高度。
语法: int imagesy(int im);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来取得图片的高度数值。

ImageTTFBBox
计算 TTF 文字所占区域。
语法: array ImageTTFBBox(int size, int angle, string fontfile, string text);
返回值: 数组
函数种类: 图形处理
内容说明: 本函数用来计算并返回 TTF 文字区域框 (bounding box) 大小。参数 size 为字形的尺寸;angle 为字型的角度;fontfile 为字型文件名称,亦可是远端的文件;text 当然就是字符串内容了。返回值为数组,包括了八个元素,头二个分别为左下的 x、y 坐标,第三、四个为右下角的 x、y 坐标,第五、六及七、八二组分别为右上及左上的 x、y 坐标。治募注意的是欲使用本函数,系统要装妥 GD 及 Freetype 二个函数库。

ImageTTFText
写 TTF 文字到图中。
语法: array ImageTTFText(int im, int size, int angle, int x, int y, int col, string fontfile, string text);
返回值: 数组
函数种类: 图形处理
内容说明: 本函数将 TTF (TrueType Fonts) 字型文字写入图片。参数 size 为字形的尺寸;angle 为字型的角度,顺时针计算,0 度为水平,也就是三点钟的方向 (由左到右),90 度则为由下到上的文字;x,y 二参数为文字的坐标值 (原点为左上角);参数 col 为字的颜色;fontfile 为字型文件名称,亦可是远端的文件;text 当然就是字符串内容了。返回值为数组,包括了八个元素,头二个分别为左下的 x、y 坐标,第三、四个为右下角的 x、y 坐标,第五、六及七、八二组分别为右上及左上的 x、y 坐标。治募注意的是欲使用本函数,系统要装妥 GD 及 Freetype 二个函数库。
使用范例
本例建立一个 400x30 pixel 大小的黑底图,并用 Arial 向量字体写出 I am NUMBER ONE !! 的白字。
<?php
Header("Content-type: image/gif");
$im = imagecreate(400,30);
$black = ImageColorAllocate($im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
ImageTTFText($im, 20, 0, 10, 20, $white, "/somewhere/arial.ttf", "I am NUMBER ONE !!");
ImageGif($im);
ImageDestroy($im);
?>
参考 ImageTTFBBox()

ImageColorAt
取得图中指定点颜色的索引值。
语法: int imagecolorat(int im, int x, int y);
返回值: 整数
函数种类: 图形处理
内容说明
本函数可取得图形中某指定点的颜色索引值 (index)。
参考 ImageColorSet() ImageColorsForIndex()

ImageColorClosest
计算色表中与指定颜色最接近者
语法: int imagecolorclosest(int im, int red, int green, int blue);
返回值: 整数
函数种类: 图形处理
内容说明
本函数用来计算调色盘中与指定 RGB 颜色最接近的颜色。参数 red、green、blue 分别为红、绿、蓝三原色,也就是所谓的 RGB 值。
参考 ImageColorExact()

ImageColorExact
计算色表上指定颜色索引值。
语法: int imagecolorexact(int im, int red, int green, int blue);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来计算调色盘中指定 RGB 颜色的色素索引值。参数 red、green、blue 分别为红、绿、蓝三原色,也就是所谓的 RGB 值。若调色盘中没有指定的颜色,则返回 -1。
参考 ImageColorClosest()

ImageColorResolve
计算色表上指定或最接近颜色的索引值。
语法: int imagecolorresolve(int im, int red, int green, int blue);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来计算调色盘中指定 RGB 颜色的色素索引值。参数 red、green、blue 分别为红、绿、蓝三原色,也就是所谓的 RGB 值。若无指定颜色则取得最接近的颜色。无论如何本函数都会有索引值返回。
参考 ImageColorClosest() ImageColorExact()

ImageColorSet
配置色表上指定索引的颜色。
语法: boolean imagecolorset(int im, int index, int red, int green, int blue);
返回值: 布尔值
函数种类: 图形处理
内容说明: 本函数用来配置调色盘上指定索引的颜色值。参数 index 为索引值。参数 red、green、blue 分别为红、绿、蓝三原色,也就是所谓的 RGB 值。此函数适合将图片上某颜色改掉,即利用索引的颜色更改图片颜色。
参考 ImageColorAt()

ImageColorsForIndex
取得色表上指定索引的颜色。
语法: array imagecolorsforindex(int im, int index);
返回值: 数组
函数种类: 图形处理
内容说明: 本函数用来取得调色盘上指定索引的颜色值。参数 index 为索引值。数组返回值分别为红、绿、蓝三原色的值。
参考 ImageColorAt() ImageColorSet()

ImageColorsTotal
计算图的颜色数。
语法: int imagecolorstotal(int im);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来计算图片的调色盘有几种不同的颜色。
参考 ImageColorAt() ImageColorsForIndex()

ImagePSLoadFont
载入 PostScript 字型。
语法: int imagepsloadfont(string filename);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数用来载入 PostScript Type1 字型。参数 filename 为 PostScript Type1 字型的名称。
参考 ImagePSFreeFont()

ImagePSFreeFont
卸下 PostScript 字型。
语法: void imagepsfreefont(int fontindex);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将已载入 PostScript Type1 字型卸下。参数 fontindex 为载入 PostScript Type1 字型的 handle。
参考 ImagePSLoadFont()

ImagePSEncodeFont
PostScript 字型转成向量字。
语法: int imagepsencodefont(string encodingfile);
返回值: 整数
函数种类: 图形处理
内容说明: 本函数将 PostScript Type1 字型转换成向量字。若需要西方语衔募特殊文字则要 T1lib 函数库。目前 T1lib 提供 IsoLatin1.enc 和 IsoLatin2.enc 二套字。若常要使用向量字,可以在 php3.ini/php.ini 中配置 ps.default_encoding,PHP 系统会自动载入转换。
参考 ImagePSLoadFont()

ImagePSText
写 PostScript 文字到图中。
语法: array imagepstext(int image, string text, int font, int size, int foreground, int background, int x, int y, int space, int tightness, float angle, int antialias_steps);
返回值: 数组
函数种类: 图形处理
内容说明
本函数将 PostScript Type1 字型文字写入图片。参数 image 为图形。text 参数为要写入的字符串。参数 font 则为指定的字型。参数 size 为字的大小,单位为像素 (pixel)。参数 foreground 及 background 分别为前景及背景色,程序会依这二色来修正文字边晕募锯齿。参数 x,y 为文字的坐标,以左下角开始计算。space 参数为文字间的空隔大小。参数 tightness 为单字间的紧密度。angle 为角度。最后一个参数 antialias_steps 为边缘锯齿状修正的等级,范围为 4 至 16。返回数组有四个元素,第一、二个分别为左下角的 x,y 值,第三、四个元素为右上角的 x,y 值。
参考 ImagePSBBox()

ImagePSBBox
计算 PostScript 文字所占区域。
语法: array imagepsbbox(string text, int font, int size, int space, int width, float angle);
返回值: 数组
函数种类: 图形处理
内容说明: 本函数用来计算并返回 PostScript 文字区域框 (bounding box) 大小。参数 text 为要写入的字符串。参数 font 则为指定的字型。参数 size 为字的大小,单位为像素 (pixel)。参数 width 为的宽度。angle 为角度。返回数组有四个元素,第一、二个分别为左下角的 x,y 值,第三、四个元素为右上角的 x,y 值。
参考 ImagePSText()

关于我们
公司简介
发展历程
青鸟荣誉
联系我们
加入我们
青鸟课程
BCVE视频特效课程
BCUI全链路UI设计
BCSP软件开发专业
BCNT网络工程师
启能职业教育基础课程
长沙初中生学什么
长沙高中生学什么
长沙大学生学什么