Forum und email

imagettftext

(PHP 4, PHP 5)

imagettftext — Escribir un texto sobre la imagen usando fuentes TrueType

Descripción

array imagettftext ( resource $imagen , float $tamanyo , float $angulo , int $x , int $y , int $color , string $archivo_fuente , string $texto )

Escribe el texto dado en la imagen usando fuentes TrueType.

Lista de parámetros

image

An image resource, returned by one of the image creation functions, such as imagecreatetruecolor().

tamanyo

El tamaño de la fuente. Dependiendo de su versión de GD, éste puede ser especificado como el tamaño en píxeles (GD1), o el tamaño en puntos (GD2)

angulo

El ángulo en grados, en donde 0 grados significa texto de lectura de izquierda-a-derecha. Valores más altos representan una rotación en sentido contrario al de las manecillas del reloj. Por ejemplo, un valor de 90 resulta en texto de lectura de abajo-hacia-arriba.

x

Las coordenadas dadas por x y y definirán el punto base del primer caracter (a grandes rasgos la esquina inferior izquierda del caracter). Esto a diferencia de imagestring(), en donde x y y definen la esquina superior izquierda del primer caracter. Por ejemplo, "arriba a la izquierda" es 0, 0.

y

La coordenada y. Ésta establece la posición de la línea base de las fuentes, no la parte más baja del caracter.

color

El índice de color. Usar un índice de color negativo tiene el efecto de deshabilitar el anti-alias. Vea imagecolorallocate()

archivo_fuente

La ruta a la fuente TrueType que desea usar.

Dependiendo de la versión de la biblioteca GD que usa PHP, cuando archivo_fuente no comienza con / entonces .ttf se añade al nombre de archivo y la biblioteca intentará buscar ese archivo a lo largo de una ruta de fuentes definida en la biblioteca.

Cuando se usan versiones de la biblioteca GD inferiores a 2.0.18, un caracter de espacio, en lugar de un punto-y-coma, era usado como el 'separador de ruta' para diferentes archivos de fuente. El uso no intencionado de esta característica resulta en el mensaje de advertencia: Warning: Could not find/open font. Para estas versiones afectadas, la única solución es mover la fuente a una ruta que no contenga espacios.

En muchos casos en los que una fuente reside en el mismo directorio que el script que la utiliza, el siguiente truco aliviará los problemas de inclusión.

<?php
// Definir la variable de entorno para GD
putenv('GDFONTPATH=' realpath('.'));

// Nombre de la fuente a usar (note la falta de la extensión .ttf)
$fuente 'AlgunaFuente';
?>

texto

La cadena de texto en codificación UTF-8.

Puede incluir referencias numéricas de caracter (de la forma: &#8364;) para acceder a caracteres en una fuente más allá de la posición 127. El formato hexadecimal (como &#xA9;) es soportado a partir de PHP 5.2.0. Es posible pasar cadenas en codificación UTF-8 directamente.

Las entidades con nombre, como &copy;, no son soportadas. Considere usar html_entity_decode() para decodificar tales entidades a cadenas UTF-8 (html_entity_decode() soporta esta aplicación a partir de PHP 5.0.0).

Si un caracter que no es soportado por la fuente es usado en la cadena, un rectángulo vacío reemplazará al caracter.

Valores retornados

Devuelve una matriz con 8 elementos que representan cuatro puntos que forman la caja circundante del texto. El orden de los puntos es inferior izquierdo, inferior derecho, superior derecho y superior izquierdo. Los puntos son relativos al texto independientemente del ángulo, así que "superior izquierdo" quiere decir la esquina del lado superior izquierdo cuando ve el texto horizontalmente.

Ejemplos

Example#1 Ejemplo de imagettftext()

Este script de ejemplo producirá un PNG blanco de 400x30 pixeles, con las palabras "Probando..." en negro (con sombra gris), en 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 pintar
$texto 'Probando...';
// Reemplaze la ruta con su propia ruta a la fuente
$fuente 'arial.ttf';

// Agregar una sombra al texto
imagettftext($im2001121$gris$fuente$texto);

// Agregar el texto
imagettftext($im2001020$negro$fuente$texto);

// Usar imagepng() resulta en texto más claro, en comparación con imagejpeg()
imagepng($im);
imagedestroy($im);
?>

El resultado del ejemplo seria algo similar a:

Notes

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

Ver también