note 79243 deleted from function.imagecreatefrompng by nlopess
| From: | nlopess@php.net | Date: | Fri, 16 Nov 2007 19:40:04 +0000 |
| Subject: | note 79243 deleted from function.imagecreatefrompng by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-132361@lists.php.net to get a copy of this message | ||
Note Submitter: andrebronca at hotmail dot com
Reason: non-english
----
Pega uma imagem PNG no formato de botão, e grava um texto passado pelo método GET. O texto
ficará centralizado em todos os lados, caso seja menor que a imagem. Crie um diretório para
alocar as imagens. Todas podem ser recuperadas depois. Seus nomes sao respectivos com o que foi
atribuido ao método GET. Para utilizar o método POST, basta colocar no action o nome do
arquivo PHP.
<?php //botao_texto.php
//cabeçalho da página
header('Content-Type: image/jpeg');
//caminho do armazenamento da imagem, pode ser criado no diretório local uma pasta.
$path = "./img";
//Cria a variável com o texto para a imagem
$text = $_GET['text'];
//tipo da fonte
$font = 'times';
//se nao vier pelo GET
if(!$_GET['size']):
//o tamanho da fonte será definido automaticamente
$size = 12;
endif;
//localiza a imagem no diretório atual
//pode ser criado no uma image com qualquer dimensão, aceitável como botão.
//Exemplo calculado aqui: 100px x 31px
$im = ImageCreateFromPNG('botao.png');
//separar os valores do comprimento e altura do botao
$imx = imagesx($im);
$imy = imagesy($im);
//obter as coordenadas do texto para o botao
$txt = ImageTTFBBox($size,0,$font,$text);
//separar a altura e comprimento do texto
$txt_x = $txt[2] - $txt[0];
$txt_y = $txt[5] - $txt[3];
//obter o ponto x e y do botao para centralizar o texto
$x = ($imx - $txt_x) / 2;
$y = ($imy - $txt_y) / 2;
//definir a cor do texto
$black = ImageColorAllocate($im,0,0,0);
//monta a imagem: imagem, tamanho fonte, angulo, posicao inicial, posicao final
//....................................., cor, tipo de fonte, texto da imagem
ImageTTFText($im,$size,0,$x,$y,-black,$font,$text);
//monta a imagem como JPEG
ImageJPEG($im);
//monta a imagem e salva
ImageJPEG($im,"$path/$text.jpeg");
?>
Código para passar pelo método GET. Simples tabela que centraliza duas chamadas da imagem.
Para o caso de comparação.
<!-- view_button.html -->
<table align="center">
<tr>
<td><img src="botao_php.php?text=Enviar"></td>
</tr>
<tr>
<td><img src="botao_php.php?text=Cadastrar"></td>
</tr>
</table>