<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <HTML ><HEAD ><TITLE >imagettftext</TITLE ><META NAME="GENERATOR" CONTENT="Modular DocBook HTML Stylesheet Version 1.79"><LINK REL="HOME" TITLE="PHP 手册" HREF="index.html"><LINK REL="UP" TITLE="Image 图像函数" HREF="ref.image.html"><LINK REL="PREVIOUS" TITLE="imagettfbbox" HREF="function.imagettfbbox.html"><LINK REL="NEXT" TITLE="imagetypes" HREF="function.imagetypes.html"><META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8"></HEAD ><BODY CLASS="refentry" BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#840084" ALINK="#0000FF" ><DIV CLASS="NAVHEADER" ><TABLE SUMMARY="Header navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TH COLSPAN="3" ALIGN="center" >PHP 手册</TH ></TR ><TR ><TD WIDTH="10%" ALIGN="left" VALIGN="bottom" ><A HREF="function.imagettfbbox.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="80%" ALIGN="center" VALIGN="bottom" ></TD ><TD WIDTH="10%" ALIGN="right" VALIGN="bottom" ><A HREF="function.imagetypes.html" ACCESSKEY="N" >下一页</A ></TD ></TR ></TABLE ><HR ALIGN="LEFT" WIDTH="100%"></DIV ><H1 ><A NAME="function.imagettftext" ></A >imagettftext</H1 ><DIV CLASS="refnamediv" ><A NAME="AEN89886" ></A ><P > (PHP 3, PHP 4, PHP 5)</P >imagettftext -- 用 TrueType 字体向图像写入文本</DIV ><DIV CLASS="refsect1" ><A NAME="AEN89889" ></A ><H2 >说明</H2 >array <B CLASS="methodname" >imagettftext</B > ( resource image, float size, float angle, int x, int y, int color, string fontfile, string text )<BR ></BR ><P > <P ></P ><DIV CLASS="variablelist" ><DL ><DT ><CODE CLASS="parameter" >image</CODE ></DT ><DD ><P > 图像资源。见 <A HREF="function.imagecreatetruecolor.html" ><B CLASS="function" >imagecreatetruecolor()</B ></A >。 </P ></DD ><DT ><CODE CLASS="parameter" >size</CODE ></DT ><DD ><P > 字体大小。根据 GD 版本不同,应该以像素大小指定(GD1)或点大小(GD2)。 </P ></DD ><DT ><CODE CLASS="parameter" >angle</CODE ></DT ><DD ><P > 角度制表示的角度,0 度为从左向右读的文本。更高数值表示逆时针旋转。例如 90 度表示从下向上读的文本。 </P ></DD ><DT ><CODE CLASS="parameter" >x</CODE ></DT ><DD ><P > 由 <CODE CLASS="parameter" >x</CODE >,<CODE CLASS="parameter" >y</CODE > 所表示的坐标定义了第一个字符的基本点(大概是字符的左下角)。这和 <A HREF="function.imagestring.html" ><B CLASS="function" >imagestring()</B ></A > 不同,其 x,y 定义了第一个字符的左上角。例如 "top left" 为 0, 0。 </P ></DD ><DT ><CODE CLASS="parameter" >y</CODE ></DT ><DD ><P > Y 坐标。它设定了字体基线的位置,不是字符的最底端。 </P ></DD ><DT ><CODE CLASS="parameter" >color</CODE ></DT ><DD ><P > 颜色索引。使用负的颜色索引值具有关闭防锯齿的效果。见 <A HREF="function.imagecolorallocate.html" ><B CLASS="function" >imagecolorallocate()</B ></A >。 </P ></DD ><DT ><CODE CLASS="parameter" >fontfile</CODE ></DT ><DD ><P > 是想要使用的 TrueType 字体的路径。 </P ><P > 根据 PHP 所使用的 GD 库的不同,<SPAN CLASS="emphasis" ><I CLASS="emphasis" >当 <CODE CLASS="parameter" >fontfile</CODE > 没有以 <TT CLASS="literal" >/</TT > 开头时则 <TT CLASS="literal" >.ttf</TT > 将被加到文件名之后</I ></SPAN >并且会在库定义字体路径中尝试搜索该文件名。 </P ><P > 当使用的 GD 库版本低于 2.0.18 时,一个空格字符 而不是分号将被用来作为不同字体文件的“路径分隔符”。不小心使用了此特性将会导致一条警告信息:<TT CLASS="literal" >Warning: Could not find/open font</TT >。对受影响的版本来说唯一解决方案就是将字体移动到不包含空格的路径中去。 </P ><P > 很多情况下字体都放在脚本的同一个目录下。下面的小技巧可以减轻包含的问题。 <TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">// Set the enviroment variable for GD<br /></font><font color="#0000BB">putenv</font><font color="#007700">(</font><font color="#DD0000">'GDFONTPATH=' </font><font color="#007700">. </font><font color="#0000BB">realpath</font><font color="#007700">(</font><font color="#DD0000">'.'</font><font color="#007700">));<br /><br /></font><font color="#FF8000">// Name the font to be used (note the lack of the .ttf extension)<br /></font><font color="#0000BB">$font </font><font color="#007700">= </font><font color="#DD0000">'SomeFont'</font><font color="#007700">;<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE > </P ></DD ><DT ><CODE CLASS="parameter" >text</CODE ></DT ><DD ><P > 文本字符串。 </P ><P > 可以包含十进制数字化字符表示(形式为:&#8364;)来访问字体中超过位置 127 的字符。UTF-8 编码的字符串可以直接传递。 </P ><P > 如果字符串中使用的某个字符不被字体支持,一个空心矩形将替换该字符。 </P ></DD ></DL ></DIV > </P ><P > <B CLASS="function" >imagettftext()</B > 返回一个含有 8 个单元的数组表示了文本外框的四个角,顺序为坐下角,右下角,右上角,左上角。这些点是相对于文本的而和角度无关,因此“左上角”指的是以水平方向看文字时其左上角。 </P ><P > <TABLE WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" CLASS="EXAMPLE" ><TR ><TD ><DIV CLASS="example" ><A NAME="AEN89979" ></A ><P ><B >例 1. <B CLASS="function" >imagettftext()</B > 例子</B ></P ><P > 本例中的脚本将生成一个白色的 400x30 像素 PNG 图像,其中有黑色(带灰色阴影)Arial 字体写的“Testing...”。 </P ><TABLE BORDER="0" BGCOLOR="#E0E0E0" CELLPADDING="5" ><TR ><TD ><code><font color="#000000"> <font color="#0000BB"><?php<br /></font><font color="#FF8000">// Set the content-type<br /></font><font color="#0000BB">header</font><font color="#007700">(</font><font color="#DD0000">"Content-type: image/png"</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Create the image<br /></font><font color="#0000BB">$im </font><font color="#007700">= </font><font color="#0000BB">imagecreatetruecolor</font><font color="#007700">(</font><font color="#0000BB">400</font><font color="#007700">, </font><font color="#0000BB">30</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Create some colors<br /></font><font color="#0000BB">$white </font><font color="#007700">= </font><font color="#0000BB">imagecolorallocate</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">255</font><font color="#007700">, </font><font color="#0000BB">255</font><font color="#007700">, </font><font color="#0000BB">255</font><font color="#007700">);<br /></font><font color="#0000BB">$grey </font><font color="#007700">= </font><font color="#0000BB">imagecolorallocate</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">128</font><font color="#007700">, </font><font color="#0000BB">128</font><font color="#007700">, </font><font color="#0000BB">128</font><font color="#007700">);<br /></font><font color="#0000BB">$black </font><font color="#007700">= </font><font color="#0000BB">imagecolorallocate</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">);<br /></font><font color="#0000BB">imagefilledrectangle</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">399</font><font color="#007700">, </font><font color="#0000BB">29</font><font color="#007700">, </font><font color="#0000BB">$white</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// The text to draw<br /></font><font color="#0000BB">$text </font><font color="#007700">= </font><font color="#DD0000">'Testing...'</font><font color="#007700">;<br /></font><font color="#FF8000">// Replace path by your own font path<br /></font><font color="#0000BB">$font </font><font color="#007700">= </font><font color="#DD0000">'arial.ttf'</font><font color="#007700">;<br /><br /></font><font color="#FF8000">// Add some shadow to the text<br /></font><font color="#0000BB">imagettftext</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">20</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">11</font><font color="#007700">, </font><font color="#0000BB">21</font><font color="#007700">, </font><font color="#0000BB">$grey</font><font color="#007700">, </font><font color="#0000BB">$font</font><font color="#007700">, </font><font color="#0000BB">$text</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Add the text<br /></font><font color="#0000BB">imagettftext</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">, </font><font color="#0000BB">20</font><font color="#007700">, </font><font color="#0000BB">0</font><font color="#007700">, </font><font color="#0000BB">10</font><font color="#007700">, </font><font color="#0000BB">20</font><font color="#007700">, </font><font color="#0000BB">$black</font><font color="#007700">, </font><font color="#0000BB">$font</font><font color="#007700">, </font><font color="#0000BB">$text</font><font color="#007700">);<br /><br /></font><font color="#FF8000">// Using imagepng() results in clearer text compared with imagejpeg()<br /></font><font color="#0000BB">imagepng</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">);<br /></font><font color="#0000BB">imagedestroy</font><font color="#007700">(</font><font color="#0000BB">$im</font><font color="#007700">);<br /></font><font color="#0000BB">?></font> </font> </code></TD ></TR ></TABLE ></DIV ></TD ></TR ></TABLE > </P ><P > 本函数同时需要 GD 库和 <A HREF="http://www.freetype.org/" TARGET="_top" >FreeType</A > 库。 </P ><P > 参见 <A HREF="function.imagettfbbox.html" ><B CLASS="function" >imagettfbbox()</B ></A >。 </P ></DIV ><DIV CLASS="NAVFOOTER" ><HR ALIGN="LEFT" WIDTH="100%"><TABLE SUMMARY="Footer navigation table" WIDTH="100%" BORDER="0" CELLPADDING="0" CELLSPACING="0" ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" ><A HREF="function.imagettfbbox.html" ACCESSKEY="P" >上一页</A ></TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="index.html" ACCESSKEY="H" >起始页</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" ><A HREF="function.imagetypes.html" ACCESSKEY="N" >下一页</A ></TD ></TR ><TR ><TD WIDTH="33%" ALIGN="left" VALIGN="top" >imagettfbbox</TD ><TD WIDTH="34%" ALIGN="center" VALIGN="top" ><A HREF="ref.image.html" ACCESSKEY="U" >上一级</A ></TD ><TD WIDTH="33%" ALIGN="right" VALIGN="top" >imagetypes</TD ></TR ></TABLE ></DIV ></BODY ></HTML >