+2

Gerando imagens dinâmicas com fontes truetype

criado por Cello Zero em 04/05/2006 1:50pm
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/

<?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

Comentários:

Mostrando 1 - 1 de 1 comentários
a disse:
Interessante, muito bom pra trabalhar com aquelas imagens de captcha variando a fonte para dificultar reconhecimento.
11/09/2009 1:30pm (~15 anos atrás)

Novo Comentário:

(Você pode usar tags como <b>, <i> ou <code>. URLs serão convertidas para links automaticamente.)