Com quebra de linha e tamanho automático
Muito tem se falado sobre como escrever em imagens, ou criar imagens com texto, etc.
E essa função não é diferente, só mais um pouquinho inteligente.
Nela você pode colocar textos inteiros dentro de uma imagem, sem se importar com o tamanho, pois ela cuida para que a imagem resultante tenha o tamanho do texto, e ainda quebra as linhas automaticamente quando chega no limite da largura, sem cortar as palavras no meio.
Se você escrever um texto muito grande, ela quebra a linha pra não ultrapassar a largura, como já foi dito, mas se você quiser forçar a quebra de uma linha é só usar
\nCódigo php
<?
function gera_imagem($texto, $width = 150, $height = 0)
{
/* # ================================================
# Essa funo cria uma imagem com o texto indicado em $texto.
# A variavel $texto obrigatria, mas width e height no.
# Se voc no definir width, ela ser igual a 150
# Se voc no definir height, ele ser calculado baseado no nmero de caracteres, numero de linhas, etc
# Para inserir quebra de linha dentro do texto, use \n
# =================================================
*/ header("Content-type: image/png");
$text_width =
strlen($texto)*
12;
//tamanho aproximado de width em pixels desse texto $char_per_row = (int)($width/8); //nm caracteres por linha
$texto =
wordwrap($texto,
$char_per_row,
"\n",
0);
//marco o lugar onde ser cortado o texto sem cortar nenhuma palavra $texto =
explode("\n",
$texto);
//quebro o texto no lugar q foi marcado para ser cortado
if($height==
0){$height =
count($texto)*
12;
}
$im = @ImageCreate
($width,
$height) or
die ("erro");
$background_color = ImageColorAllocate ($im, 255, 255, 255); // White: 255,255,255
$text_color = ImageColorAllocate ($im, 0, 0, 0);
foreach($texto as $chave=>$partes){
imagestring($im, 3,5,$chave*12,$partes, $text_color);
} //*/
// imagestring($im, font,x,y,texto, $text_color);
imagepng ($im);
}?>
Para chamar a função, faça assim:
$texto = "José Cláudio Medeiros de Lima. \n Olha mãe, eu to no Webly!!";
gera_imagem($texto);
Sugesões pra incrementar a função:
- Substituam as quebras de linha inseridas no texto, automaticamente, sem inserir \n;
- Incluam possibilidade de formatação do texto mudando as cores de texto, fundo e fonte;
- para os mais avançados: Formatação BB CODE funcionar dentro da imagem, ou seja, criar uma imagem com diversas cores, tipos de letras, fontes, etc baseada no bbcode. (Essa eu não faço porque não tenho nem idéia, mas ficaria Show!)
Fonte: www.webly.com.br/