(PHP 4, PHP 5, PHP 7)
imagettfbbox — Devuelve la caja circundante de un texto usando fuentes TrueType
$size
, float $angle
, string $fontfile
, string $text
) : arrayEsta función calcula y devuelve la caja circundante en píxeles de un texto TrueType.
size
Tamaño de fuente.
Nota: En GD 1, se mide en píxels. En GD 2, se mide en puntos.
angle
El ángulo en grados en el que text
será medido.
fontfile
El nombre de un archivo de fuente TrueType (puede ser una URL). Dependiendo de la versión de la biblioteca GD que esté usando PHP, se intentará buscar archivos que no comiencen con '/' añadiendo '.ttf' al nombre de archivo y buscando en una ruta de biblioteca definida de fuentes.
text
La cadena que va a ser medida.
imagettfbbox() devuelve una matriz con 8
elementos que representan cuatro puntos que hacen la caja circundante del
texto si se tiene éxtio, y FALSE
si se produjo un error.
key | contents |
---|---|
0 | esquina inferior izquierda, posición X |
1 | esquina inferior izquierda, posición Y |
2 | esquina inferior derecha, posición X |
3 | esquina inferior derecha, posición Y |
4 | esquina superior derecha, posición X |
5 | esquina superior derecha, posición Y |
6 | esquina superior izquierda, posición X |
7 | esquina superior izquierda posición Y |
Los puntos son relativos a text sin importar el ángulo
angle
, por lo que "superior izquierda" significa la esquina superior
izquierda, viendo el texto horizontalmente.
Ejemplo #1 Ejemplo de imagettfbbox()
<?php
// Crear una imagen de 300x150
$im = imagecreatetruecolor(300, 150);
$negro = imagecolorallocate($im, 0, 0, 0);
$blanco = imagecolorallocate($im, 255, 255, 255);
// Establecer el fondo a blanco
imagefilledrectangle($im, 0, 0, 299, 299, $blanco);
// Ruta de nuestro archivo de fuente
$fuente = './arial.ttf';
// Primero creamos nuestra caja circundante para nuestro primer texto
$bbox = imagettfbbox(10, 45, $fuente, 'Powered by PHP ' . phpversion());
// Estas son nuestras coordenadas para X e Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Escribirlo
imagettftext($im, 10, 45, $x, $y, $negro, $fuente, 'Powered by PHP ' . phpversion());
// Crear la siguiente caja circundante para el segundo texto
$bbox = imagettfbbox(10, 45, $fuente, 'and Zend Engine ' . zend_version());
// Establecer las coordenadas para que esté a continuación del primer texto
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Escribirlo
imagettftext($im, 10, 45, $x, $y, $negro, $fuente, 'and Zend Engine ' . zend_version());
// Imprimir al navegador
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
Nota:
Esta función requiere tanto la biblioteca GD como la biblioteca » FreeType.