到前面为止,我们已经能够用GD完成作图基本的需要了。但有的时候恐怕就要嫌ImageString
能用的五种字体少而且难看,那就要用到下面的函数了。这个函数允许我们使用TTF字体;但你
必须拥有这些字体的文件。
Header("Content-type: image/png");
$im = ImageCreate(400,250);
$col_back = ImageColorAllocate($im,136,200,152);
$col_write = ImageColorAllocate($im,255,255,255);
$col_black = ImageColorAllocate($im,0,0,0);
ImageTTFText($im,160,15,40,220,$col_black,"C:/windows/fonts/verdana.ttf","PNG");
// 新的内容只有这一句。参数是这样的:
// $im 不用说了。
160 这个位置,是字号(pt)。15 字串是倾斜角度,水平方向起逆时针。
// 40,220是横纵坐标。注意,跟ImageString不同的是,
// ImageString里指定的坐标是字串的左上角,而ImageTTFText指定的坐标是左下角。
// 接下来 $col_black 是颜色喽,
// "C:/windows/fonts/verdana.ttf"是字体文件路径,在Linux就是"/.../....."。
// 甚至可以是 "http://...."。但是,我没有这样用过,也不推荐这样用。
// 因为不在自己机器上的东西终究是不可靠的,不可以委以重任。
// 最后就是要输出的字符串了。这是尤其要引起注意的,
// 这里的字符串要用UTF-8编码!!!
// ASCII码 0~127的字符,ASCII码等于UTF-8编码,所以我们在输出西文字符串的时候不需要转换。
// 而如果要输出中文,则需要一系列的转换。
// www.phpx.com的sadly写了一个GB2312码到UTF-8码转换的函数。
// 我的另一篇文章专门分析了这个函数的工作原理。