Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-11-2008 19:09

Abaixo segue um script comentado para você carregar um foto e incluir um texto centralizado nela.

<?php // foto a ser usada $foto = "..."; $fundo = imagecreatefromjpeg($foto); $tamanho = getimagesize($foto); // texto a ser escrito na foto $texto = "abcde"; // tamanho do texto usado na foto $tamanho_fonte = 20; $fonte_width = ImageFontWidth($tamanho_fonte); $fonte_height = ImageFontHeight($tamanho_fonte); $texto_width = $fonte_width * strlen($texto); // posição centralizada, direita - esquerda $posicao_centralizada = ceil(($tamanho[0] - $texto_width) / 2); // posição centralizada, topo - rodapé $posicao_middle = ceil(($tamanho[1] - $texto_height) / 2); header("Content-type: image/jpeg"); $black = imagecolorallocate($fundo, 255, 255, 255); // verdana.ttf deve estar no mesmo diretório para criar o texto Imagettftext($fundo, $tamanho_fonte, 0, $posicao_centralizada, $posicao_middle, $black, "verdana.ttf", $texto); imagejpeg($fundo, "", 100); imagedestroy($fundo); ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 149

Escrever um texto centralizado na foto

27-05-2011 09:20

Cara, voltando a este post.
O que eu não estou conseguindo é centralizar a fonte no meio da imagem.
Na verdade eu quero pegar o texto e escrever ele em branco em um quadro criado com imagecreate em preto.
Essa paste beleza, deu certo, mas centralizar no centro não consegui.

header("Content-type:image/jpeg");     $texto = "Arial";     $img = imagecreate(228,47);     $branco = imagecolorallocate($img,0,0,0);          $preto = imagecolorallocate($img,255,255,255);     $tamanho_fonte = 20;     $fonte_width = imagefontwidth($tamanho_fonte);     $fonte_height = imagefontheight($tamanho_fonte);          $texto_width = $fonte_width * strlen($texto);          // posição centralizada, direita - esquerda     $posicao_centralizada = ceil(($tamanho[0] - $texto_width) / 2);          // posição centralizada, topo - rodapé     $posicao_middle = ceil(($tamanho[1] - $texto_height) / 2);          // verdana.ttf deve estar no mesmo diretório para criar o texto     imagettftext($img, $tamanho_fonte, 0, $posicao_centralizada, $posicao_middle, $preto, "scriptina.ttf", $texto);          imagejpeg($img, "", 100);     imagedestroy($img);  

0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 11:08

Como ficou o seu texto? Tem um link mostrando?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 149

Escrever um texto centralizado na foto

27-05-2011 11:30

Não tenho link, mas ele ficou deslocado para fora da imagem aparecendo só um pequeno pedaço na parte superior esquerdo.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 11:32

O texto é maior que o tamanho da figura?
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 149

Escrever um texto centralizado na foto

27-05-2011 11:57

Não. É pequeno. O problema só está no centralização mesmo.
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 12:07

Estou fazendo aqui uns testes com esse script, e observei que se você tem por exemplo uma letra, o texto fica relativamente posicionado, agora, a cada nova letra que você coloca, o texto vai subindo, até sair do quadro da foto.

Depois vou verificar novamente esse script e posto uma resposta.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 13:30

Trabalhei aqui em cima desse script, e encontrei alguns erros na hora de pegar o posicionamento. Fiz um teste aqui e parece que está ok.

<?php // header para saida final png header('Content-Type: image/png'); // foto $foto = "foto.jpg"; // criando a foto $im = imagecreatefromjpeg($foto); // tamanho da foto $tamanho = getimagesize($foto); // tratamento da fonte $tamanho_fonte = 20; // tamanho $fonte_width = ImageFontWidth($tamanho_fonte); // largura $fonte_height = ImageFontHeight($tamanho_fonte); // altura // texto $text = 'Olá mundo!'; // tamanho do texto $texto_width = $fonte_width * strlen($text); $texto_height = $fonte_height * strlen($text); // posição do texto $posicao_centralizada = ceil(($tamanho[0]) / 2)-$texto_width; $posicao_middle = ceil(($tamanho[1]) / 2); // cores disponíveis para o texto $white = imagecolorallocate($im, 255, 255, 255); // usado nesse teste $grey = imagecolorallocate($im, 128, 128, 128); $black = imagecolorallocate($im, 0, 0, 0); // tipo da fonte $font = 'verdana.ttf'; // adição do texto a foto imagettftext($im, $tamanho_fonte, 0, $posicao_centralizada, $posicao_middle, $white, $font, $text); // criando o png a ser mostrado imagepng($im); imagedestroy($im); ?>

0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Mensagens: 149

Escrever um texto centralizado na foto

27-05-2011 17:01

Sim. Mas seu coloco uma imagem de fundo. Funciona na boa. Mas no meu caso eu crio uma de 250x50 por exemplo. e daí na rola a centralização certa.
Vou te perguntar de forma diferente. Não seria possível, fazer com que o texto escrito no caso o nome da fonte se adaptar a largura da imagem criada, ou seja 250?
0
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 17:15

Eu testei aqui com uma figura pequena e uma bem grande. Vou testar com uma figura de 250 x 50 e vejo o resultado.
0
A melhor hospedagem para o seu site HostGator!
 
Avatar do usuário
ADMIN
ADMIN
Tópico Autor
Mensagens: 17562
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Escrever um texto centralizado na foto

27-05-2011 17:28

Testei aqui e é uma coisa bem relativa, ou seja, o tipo de fonte e o tamanho do texto dão interferência a posição final.

A alteração que fiz aqui foi só aumentar 10

$posicao_middle = ceil(($tamanho[1]) / 2)+10;

Você tem que tirar uma média ai para ver o melhor posicionamento.
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Bing [Bot]