<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.imagefttext" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>imagefttext</refname>
  <refpurpose>Write text to the image using fonts using FreeType 2</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type class="union"><type>array</type><type>false</type></type><methodname>imagefttext</methodname>
   <methodparam><type>GdImage</type><parameter>image</parameter></methodparam>
   <methodparam><type>float</type><parameter>size</parameter></methodparam>
   <methodparam><type>float</type><parameter>angle</parameter></methodparam>
   <methodparam><type>int</type><parameter>x</parameter></methodparam>
   <methodparam><type>int</type><parameter>y</parameter></methodparam>
   <methodparam><type>int</type><parameter>color</parameter></methodparam>
   <methodparam><type>string</type><parameter>font_filename</parameter></methodparam>
   <methodparam><type>string</type><parameter>text</parameter></methodparam>
   <methodparam choice="opt"><type>array</type><parameter>options</parameter><initializer>[]</initializer></methodparam>
  </methodsynopsis>
  <note>
   <para>
    Prior to PHP 8.0.0, <function>imagefttext</function> was an extended variant of
    <function>imagettftext</function> which additionally supported the
    <parameter>options</parameter>.
    As of PHP 8.0.0, <function>imagettftext</function> is an alias of <function>imagefttext</function>.
   </para>
  </note>
 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    &gd.image.description;
    <varlistentry>
     <term><parameter>size</parameter></term>
     <listitem>
      <para>
       The font size to use in points.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>angle</parameter></term>
     <listitem>
      <para> 
       The angle in degrees, with 0 degrees being left-to-right reading text.
       Higher values represent a counter-clockwise rotation. For example, a 
       value of 90 would result in bottom-to-top reading text.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>x</parameter></term>
     <listitem>
      <para>
       The coordinates given by <parameter>x</parameter> and
       <parameter>y</parameter> will define the basepoint of the first
       character (roughly the lower-left corner of the character). This
       is different from the <function>imagestring</function>, where
       <parameter>x</parameter> and <parameter>y</parameter> define the
       upper-left corner of the first character. For example, "top left"
       is 0, 0.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>y</parameter></term>
     <listitem>
      <para>
       The y-ordinate. This sets the position of the fonts baseline, not the
       very bottom of the character.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>color</parameter></term>
     <listitem>
      <para>
       The index of the desired color for the text, see 
       <function>imagecolorexact</function>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>font_filename</parameter></term>
     <listitem>
      <para>
       The path to the TrueType font you wish to use.
      </para>
      <para>
       Depending on which version of the GD library PHP is using, <emphasis>when
       <parameter>font_filename</parameter> does not begin with a leading
       <literal>/</literal> then <literal>.ttf</literal> will be appended</emphasis>
       to the filename and the library will attempt to search for that
       filename along a library-defined font path.
      </para>
      <para>
       In many cases where a font resides in the same directory as the script using it
       the following trick will alleviate any include problems.
       <programlisting role="php">
<![CDATA[
<?php
// Set the environment variable for GD
putenv('GDFONTPATH=' . realpath('.'));

// Name the font to be used (note the lack of the .ttf extension)
$font = 'SomeFont';
?>
]]>
       </programlisting>
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>text</parameter></term>
     <listitem>
      <para>
       Text to be inserted into image. 
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>options</parameter></term>
     <listitem>
      <para>
       <table>
       <title>Possible array indexes for <parameter>options</parameter></title>
        <tgroup cols="2">
         <thead>
          <row>
           <entry>Key</entry>
           <entry>Type</entry>
           <entry>Meaning</entry>
          </row>
         </thead>
         <tbody>
          <row>
           <entry><literal>linespacing</literal></entry>
           <entry><type>float</type></entry>
           <entry>Defines drawing linespacing</entry>
          </row>
         </tbody>
        </tgroup>
       </table>
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   This function returns an array defining the four points of the box, starting in the lower left and moving counter-clockwise:
   <informaltable>
    <tgroup cols="2">
     <tbody>
      <row>
       <entry>0</entry>
       <entry>lower left x-coordinate</entry>
      </row>
      <row>
       <entry>1</entry>
       <entry>lower left y-coordinate</entry>
      </row>
      <row>
       <entry>2</entry>
       <entry>lower right x-coordinate</entry>
      </row>
      <row>
       <entry>3</entry>
       <entry>lower right y-coordinate</entry>
      </row>
      <row>
       <entry>4</entry>
       <entry>upper right x-coordinate</entry>
      </row>
      <row>
       <entry>5</entry>
       <entry>upper right y-coordinate</entry>
      </row>
      <row>
       <entry>6</entry>
       <entry>upper left x-coordinate</entry>
      </row>
      <row>
       <entry>7</entry>
       <entry>upper left y-coordinate</entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </para>
  <para>
   On failure, &false; is returned.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <informaltable>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>&Version;</entry>
      <entry>&Description;</entry>
     </row>
    </thead>
    <tbody>
     &gd.changelog.image-param;
    </tbody>
   </tgroup>
  </informaltable>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title><function>imagefttext</function> example</title>
    <programlisting role="php">
<![CDATA[
<?php
// Create a 300x100 image
$im = imagecreatetruecolor(300, 100);
$red = imagecolorallocate($im, 0xFF, 0x00, 0x00);
$black = imagecolorallocate($im, 0x00, 0x00, 0x00);

// Make the background red
imagefilledrectangle($im, 0, 0, 299, 99, $red);

// Path to our ttf font file
$font_file = './arial.ttf';

// Draw the text 'PHP Manual' using font size 13
imagefttext($im, 13, 0, 105, 55, $black, $font_file, 'PHP Manual');

// Output image to the browser
header('Content-Type: image/png');

imagepng($im);
imagedestroy($im);
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>
 <refsect1 role="notes">
  &reftitle.notes;
  &note.freetype;
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <simplelist>
   <member><function>imageftbbox</function></member>
   <member><function>imagettftext</function></member>
  </simplelist>
 </refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
