imagettftext

(PHP 4, PHP 5, PHP 7)

imagettftextEscribir texto en la imagen usando fuentes TrueType

Descripción

imagettftext ( resource $image , float $size , float $angle , int $x , int $y , int $color , string $fontfile , string $text ) : array

Escribe el texto text dado en una imagen usando fuentes TrueType.

Parámetros

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 puntos.

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: &#8364;) para acceder a caracteres en la fuente que están más allá de la posición 127. El formato hexadecimal (como &#xA9;) está soportado. Las cadenas en codificación UTF-8 pueden pasarse directamente.

Las entidades con nombre, como &copy;, 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.

Valores devueltos

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.

Historial de cambios

Versión Descripción
5.2.0 Ahora es posible especificar una entidad hexadecimal en text.

Ejemplos

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(40030);

// Crear algunos colores
$blanco imagecolorallocate($im255255255);
$gris imagecolorallocate($im128128128);
$negro imagecolorallocate($im000);
imagefilledrectangle($im0039929$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($im2001121$gris$fuente$texto);

// Añadir el texto
imagettftext($im2001020$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:

Salida del ejemplo : imagettftext()

Notas

Nota:

Esta función requiere tanto la biblioteca GD como la biblioteca » FreeType.

Ver también

  • imagettfbbox() - Devuelve la caja circundante de un texto usando fuentes TrueType