Gerando imagens dinâmicas com fontes truetype
Este é meu primeiro artigo no phpbrasil, então não reparem se não for lá aquelas coisas, com o tempo as coisas melhoram.
Um dia desses eu estava intrigado como no site http://www.revolucao.etc.br os títulos apareciam na forma de texto, e depois eram substituidos por imagens, e resolvi pesquisar.
Achei um artigo aqui mesmo no site, do Luiz Ribeiro (por sinal, muito bo o artigo), mas ainda continuei com algumas dúvidas, de como poderíamos escolher uma fonte de formato TRUETYPE para a forma do texto. Quebrei um pouco a cabeça, mas acabei conseguindo...
Vamos ao código? Você vai precisar da biblioteca GD, caso não possua, baixe em http://www.boutell.com/gd/
E voilá... temos uma imagem com o texto que desejamos, na fonte que bem entendermos... Você pode fazer inúmeras variações, usando requisições de banco de dados, ou da querystring...
A função imagegif() pode ser substituida, caso você deseje outra extensão... como por exemplo imagejpeg() ou imagepng(). Mais informações em http://br.php.net/manual/pt_BR/ref.image.php
Abraço e até a próxima!
Cello
Um dia desses eu estava intrigado como no site http://www.revolucao.etc.br os títulos apareciam na forma de texto, e depois eram substituidos por imagens, e resolvi pesquisar.
Achei um artigo aqui mesmo no site, do Luiz Ribeiro (por sinal, muito bo o artigo), mas ainda continuei com algumas dúvidas, de como poderíamos escolher uma fonte de formato TRUETYPE para a forma do texto. Quebrei um pouco a cabeça, mas acabei conseguindo...
Vamos ao código? Você vai precisar da biblioteca GD, caso não possua, baixe em http://www.boutell.com/gd/
<?php /* Primeiramente definimos tamanho, e a fonte .ttf a ser usada; O arquivo .ttf deve estar no diretório do script, ou ter seu caminho indicado na variável font. */ $fontsize = 6; $font = 'kroeger.ttf'; $text = 'TEXTO VEM AQUI'; /* Neste ponto, definimos o tamanho (em pixels) da figura a ser gerada. */ $size = imagettfbbox($fontsize, 0, $font, $text); $width = 100; $height = 50; $imagem = ImageCreate($width ,$height); /* Definimos aqui as cores, em formato RGB, mas ao invés de você utilizar formato hexadecimal, use valores de 0 a 255. */ $white = imagecolorallocate($imagem, 255, 255, 255); $black = imagecolorallocate($imagem, 0, 0, 0); /* Adicionamos o texto na imagem... */ imagefttext($imagem, $fontsize, 0, 20, abs($size[5])+15, $black, $font, $text); /* Damos um nome para o arquivo */ $arquivo = 'imagem.gif'; /* Neste ponto, com a função imagegif(), fazemos o output da imagem para o diretório, e com a função imagedestroy(), limpamos a memória que foi alocada para a criação da imagem */ imagegif($imagem, $arquivo); imagedestroy($imagem); ?>
E voilá... temos uma imagem com o texto que desejamos, na fonte que bem entendermos... Você pode fazer inúmeras variações, usando requisições de banco de dados, ou da querystring...
A função imagegif() pode ser substituida, caso você deseje outra extensão... como por exemplo imagejpeg() ou imagepng(). Mais informações em http://br.php.net/manual/pt_BR/ref.image.php
Abraço e até a próxima!
Cello