(PHP 4 >= 4.0.7, PHP 5, PHP 7, PHP 8)
imagefttext — Write text to the image using fonts using FreeType 2
imagefttext( GdImage $image, float $size, float $angle, int $x, int $y, int $color, string $font_filename, string $text, array $options = [] ): array|false
Note:
Prior to PHP 8.0.0, imagefttext() was an extended variant of imagettftext() which additionally supported the
options. As of PHP 8.0.0, imagettftext() is an alias of imagefttext().
image
A GdImage object, returned by one of the image creation functions, such as imagecreatetruecolor().
sizeThe font size to use in points.
angleThe 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.
x The coordinates given by x and y will define the basepoint of the first character (roughly the lower-left corner of the character). This is different from the imagestring(), where x and y define the upper-left corner of the first character. For example, "top left" is 0, 0.
yThe y-ordinate. This sets the position of the fonts baseline, not the very bottom of the character.
colorThe index of the desired color for the text, see imagecolorexact().
font_filenameThe path to the TrueType font you wish to use.
Depending on which version of the GD library PHP is using, when font_filename does not begin with a leading / then .ttf will be appended to the filename and the library will attempt to search for that filename along a library-defined font path.
In many cases where a font resides in the same directory as the script using it the following trick will alleviate any include problems.
<?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';
?> textText to be inserted into image.
options| Key | Type | Meaning |
|---|---|---|
linespacing | float | Defines drawing linespacing |
This function returns an array defining the four points of the box, starting in the lower left and moving counter-clockwise:
| 0 | lower left x-coordinate |
| 1 | lower left y-coordinate |
| 2 | lower right x-coordinate |
| 3 | lower right y-coordinate |
| 4 | upper right x-coordinate |
| 5 | upper right y-coordinate |
| 6 | upper left x-coordinate |
| 7 | upper left y-coordinate |
On failure, false is returned.
| Version | Description |
|---|---|
| 8.0.0 | image expects a GdImage instance now; previously, a valid gd resource was expected. |
Example #1 imagefttext() example
<?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);
?> Note: This function is only available if PHP is compiled with freetype support (--with-freetype-dir=DIR)
© 1997–2025 The PHP Documentation Group
Licensed under the Creative Commons Attribution License v3.0 or later.
https://www.php.net/manual/en/function.imagefttext.php