array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.imagettfbbox.php', 1 => 'imagettfbbox', ), 'up' => array ( 0 => 'ref.image.php', 1 => 'Funções de GD e Image', ), 'prev' => array ( 0 => 'function.imagetruecolortopalette.php', 1 => 'imagetruecolortopalette', ), 'next' => array ( 0 => 'function.imagettftext.php', 1 => 'imagettftext', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/image/functions/imagettfbbox.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
imagettfbbox — Fornece a os limites retangulares de um texto usando fontes TrueType
$size
,$angle
,$font_filename
,$string
,$options
= []Esta função calcula e retorna os limites retangulares em pixels para um texto TrueType.
Nota:
Antes do PHP 8.0.0, imageftbbox() era uma variante estendida de imagettfbbox() que adicionalmente suportava o parâmetro
extrainfo
. A partir do PHP 8.0.0, imagettfbbox() é um apelido de imageftbbox().
size
O tamanho da fonte em pontos.
angle
Ângulo em graus em que a string
será medida.
fontfile
O caminho para a fonte TrueType que será usada.
Dependendo de qual versão da biblioteca GD o PHP estiver usando, quando
fontfile
não começar com uma
/
então .ttf
será adicionado
ao nome do arquivo e a biblioteca tentará procurá-lo
em um caminho de fontes definido pela biblioteca.
Ao usar versões da biblioteca GD anteriores à versão 2.0.18, um caractere espaço
,
em vez de um ponto-e-vírgula, foi usado como 'separador de caminho' para diferentes arquivos de fonte.
O uso não intencional desse recurso resultará na mensagem de aviso:
Warning: Could not find/open font
. Para essas versões afetadas, a
única solução é mover a fonte para um caminho que não contenha espaços.
Em muitos casos em que uma fonte reside no mesmo diretório que o script que a usa, o truque a seguir aliviará qualquer problema de inclusão.
<?php
// Define a variável de ambiente GDFONTPATH
putenv('GDFONTPATH=' . realpath('.'));
// Define a fonte a ser usada (observe a ausência da extensão .ttf)
$font = 'SomeFont';
?>
Nota:
Note que open_basedir não se aplica a
fontfile
.
string
A string a ser medida.
imagettfbbox() retorna um array com 8
elementos representando quatro pontos que definem os limites retangulares do
texto em caso de sucesso e false
em caso de erro.
key | contents |
---|---|
0 | canto inferior esquerdo, posição X |
1 | canto inferior esquerdo, posição Y |
2 | canto inferior direito, posição X |
3 | canto inferior direito, posição Y |
4 | canto superior direito, posição X |
5 | canto superior direito, posição Y |
6 | canto superior esquerdo, posição X |
7 | canto superior esquerdo, posição Y |
Os pontos são relativos ao texto, independente do parâmetro
angle
, portanto "superior esquerdo" significa no canto superior esquerdo
ao ver o texto na horizontal.
Versão | Descrição |
---|---|
8.0.0 |
O parâmetro options foi adicionado.
|
Exemplo #1 Exemplo de imagettfbbox()
<?php
// Cria uma imagem 300x150
$im = imagecreatetruecolor(300, 150);
$black = imagecolorallocate($im, 0, 0, 0);
$white = imagecolorallocate($im, 255, 255, 255);
// Fundo branco
imagefilledrectangle($im, 0, 0, 299, 299, $white);
// Caminho para o arquivo da fonte
$font = './arial.ttf';
// Primeiro é criado o retângulo limite para o primeiro texto
$bbox = imagettfbbox(10, 45, $font, 'Powered by PHP ' . phpversion());
// Estas são as coordenadas de X e Y
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) - 25;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Escreve
imagettftext($im, 10, 45, $x, $y, $black, $font, 'Powered by PHP ' . phpversion());
// O próximo retângulo limite é criado para o segundo texto
$bbox = imagettfbbox(10, 45, $font, 'and Zend Engine ' . zend_version());
// Define as coordenadas de forma que fique próxima ao primeiro texto
$x = $bbox[0] + (imagesx($im) / 2) - ($bbox[4] / 2) + 10;
$y = $bbox[1] + (imagesy($im) / 2) - ($bbox[5] / 2) - 5;
// Escreve
imagettftext($im, 10, 45, $x, $y, $black, $font, 'and Zend Engine ' . zend_version());
// Mostra no navegador
header('Content-Type: image/png');
imagepng($im);
imagedestroy($im);
?>
Nota: Esta função só estará disponível se o PHP for compilado com suporte ao freetype (--with-freetype-dir=DIR).