(PHP 4, PHP 5, PHP 7)
imagettftext — Escribir texto en la imagen usando fuentes TrueType
$image
, float $size
, float $angle
, int $x
, int $y
, int $color
, string $fontfile
, string $text
)
Escribe el texto text
dado en una imagen usando fuentes
TrueType.
image
Un recurso image, es devuelto por una de las funciones de creación de imágenes, como imagecreatetruecolor().
size
Tamaño de fuente. En función de la versión de GD, se especificará en pixels (GD1) o en puntos (GD2).
angle
El ángulo en grados, siendo 0 grados la lectura del texto de izquierda a derecha. Valores mayores representan una rotación en sentido contrario al de las agujas del reloj. Por ejemplo, un valor de 90 resultaria en la lectura de texto de abajo a arriba.
x
Las coordenadas dadas por x
e
y
definirán el punto de referencia del primer
carácter (aproximadamente la esquina inferior izquierda del carácter). Esto
es diferente de imagestring(), donde
x
e y
definen la
esquina superior izquierda del primer carácter. Por ejemplo, "superior izquierda"
es 0, 0.
y
La coordenada y. Esto establece la posición de la línea base de las fuentes, no la del pie del carácter.
color
El índice de color. Usar el negativo de un índice de color tiene el efecto de desactivar el antialias. Vése imagecolorallocate().
fontfile
La ruta de la fuente TrueType que se desea usar.
Dependiendo de la versión de GD que esté usando PHP, cuando
fontfile
no comienza con un
/ inicial, .ttf será añadido
al nombre de archivo, y la biblioteca intentará buscar ese
nombre de archivo en una ruta de biblioteca definida de fuentes.
Cuando se usan versiones de la biblioteca GD anteriores a 2.0.18, un carácter espacio, en vez de un punto y coma, es usado como el 'separador de ruta' para diferentes archivos de fuente. El uso involuntario de esta característica resultará en en el mensaje de advertencia: Warning: Could not find/open font. La única solución para estas versiones afectadas es mover la fuente a una ruta que no contenga espacios.
En muchos casos donde una fuente reside en el mismo derectorio que el script, el siguiente truco paliará cualquier problema de inclusión.
<?php
// Establecer la variable de entorno para GD
putenv('GDFONTPATH=' . realpath('.'));
// Nombrar la fuente que va ser usada (observe la ausencia de la extensión .ttf)
$fuente = 'UnaFuente';
?>
text
La cadena de texto en codificación UTF-8.
Puede incluir referencias a caracteres numéricos decimales (de la forma: €) para acceder a caracteres en la fuente que están más allá de la posición 127. El formato hexadecimal (como ©) está soportado. Las cadenas en codificación UTF-8 pueden pasarse directamente.
Las entidades con nombre, como ©, no están soportadas. Considere usar html_entity_decode() para decodificar estas entidades con nombre a strings UTF-8.
Si un carácter se usa en la cadena y no está soportado por la fuente, un rectángulo vacío reemplazará al carácter.
Devuelve una matriz con 8 elementos que representan cuatro puntos que hacen la
caja circundante. El orden de los puntos es inferior izquierdo, inferior
derecho, superior derecho, superior izquierdo. Los puntos son relativos al texto
sin importar el ángulo, por lo que "superior izquierdo" significa en la esquina superior
izquierda cuando se ve el texto horizontalmente.
Devuelve FALSE
si se produjo un error.
Versión | Descripción |
---|---|
5.2.0 |
Ahora es posible especificar una entidad hexadecimal en
text .
|
Ejemplo #1 Ejemplo de imagettftext()
Este script de ejemplo producirá un PNG blanco de 400x30 píxeles, con la palabra "Testing..." en negro (con sombra gris), con la fuente Arial.
<?php
// Establecer el tipo de contenido
header('Content-Type: image/png');
// Crear la imagen
$im = imagecreatetruecolor(400, 30);
// Crear algunos colores
$blanco = imagecolorallocate($im, 255, 255, 255);
$gris = imagecolorallocate($im, 128, 128, 128);
$negro = imagecolorallocate($im, 0, 0, 0);
imagefilledrectangle($im, 0, 0, 399, 29, $blanco);
// El texto a dibujar
$texto = 'Testing...';
// Reemplace la ruta por la de su propia fuente
$fuente = 'arial.ttf';
// Añadir algo de sombra al texto
imagettftext($im, 20, 0, 11, 21, $gris, $fuente, $texto);
// Añadir el texto
imagettftext($im, 20, 0, 10, 20, $negro, $fuente, $texto);
// Usar imagepng() resultará en un texto más claro comparado con imagejpeg()
imagepng($im);
imagedestroy($im);
?>
El resultado del ejemplo sería algo similar a:
Nota:
Esta función requiere tanto la biblioteca GD como la biblioteca » FreeType.