Ir para conteúdo
Fórum Script Brasil
  • 0

Texto em Imagem


marcolib

Pergunta

Bom dia a todos. Preciso inserir texto em imagem e consegui, até agora, o script abaixo... Porém preciso setar a fonte, que já está no diretório (tahoma.ttf), mas não sei como...
Poderiam me ajudar?

<?php
// Carregar imagem já existente no servidor
$imagem = imagecreatefromjpeg( "assinatura.jpg" );
/* @Parametros
 * "assinatura.jpg" - Caminho relativo ou absoluto da imagem a ser carregada.
 */

// Cor de saída
$cor = imagecolorallocate( $imagem, , 56, 118 );
$cor2 = imagecolorallocate( $imagem, 108, 169, 56 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * 255 - Cor vermelha ( RGB )
 * 255 - Cor verde ( RGB )
 * 255 - Cor azul ( RGB )
 * -- No caso acima é branco
 */

// Texto que será escrito na imagem
$nome = urldecode( $_GET['nome'] );
$cargo = urldecode( $_GET['cargo'] );
$email = urldecode( $_GET['email'] );
$telefone = urldecode( $_GET['telefone'] );
/* @Parametros
 * $_GET['nome'] - Texto que será escrito
 */

// Escrever nome

imagestring( $imagem, 3, 260, 20, $nome, $cor );
imagestring( $imagem, 4, 260, 40, $cargo, $cor2 );
imagestring( $imagem, 3, 260, 68, $email, $cor );
imagestring( $imagem, 4, 260, 88, $telefone, $cor2 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * 5 - tamanho da fonte. Valores de 1 a 5
 * 15 - Posição X do texto na imagem
 * 515 - Posição Y do texto na imagem
 * $nome - Texto que será escrito
 * $cor - Cor criada pelo imagecolorallocate
 */

// Header informando que é uma imagem JPEG
header( 'Content-type: image/jpeg' );

// eEnvia a imagem para o borwser ou arquivo
imagejpeg( $imagem, NULL, 100 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * NULL - O caminho para salvar o arquivo. 
          Se não definido ou NULL, o stream da imagem será mostrado diretamente. 
 * 80 - Qualidade da compresão da imagem.
 */

 

Editado por marcolib
Link para o comentário
Compartilhar em outros sites

15 respostass a esta questão

Posts Recomendados

  • 0

Olá Stoma, obrigado pela resposta...
Por que a imagem some quando fiz a inclusão? O que estou fazendo de errado?

 

<?php
// Código adaptado por Marco Antônio Gismonte
// Uso exclusivo para assinaturas Libório BrasilBrokers

// Carregar imagem já existente no servidor
$imagem = imagecreatefromjpeg( "assinatura2.jpg" );
/* @Parametros
 * "assinatura.jpg" - Caminho relativo ou absoluto da imagem a ser carregada.
 */

// Cor de saída
$cor = imagecolorallocate( $imagem, , 56, 118 );
$cor2 = imagecolorallocate( $imagem, 108, 169, 56 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * 255 - Cor vermelha ( RGB )
 * 255 - Cor verde ( RGB )
 * 255 - Cor azul ( RGB )
 * -- No caso acima é branco
 */
 
 
 /*Fonte que será usada*/
$font = imageloadfont("tahoma.ttf");

// Texto que será escrito na imagem
$nome = urldecode( $_GET['nome'] );
$cargo = urldecode( $_GET['cargo'] );
$email = urldecode( $_GET['email'] );
$telefone = urldecode( $_GET['telefone'] );

/* @Parametros
 * $_GET['nome'] - Texto que será escrito
 */

// Escrever nome

imagestring( $imagem, 3, 260, 20, $nome, $cor, $font );
imagestring( $imagem, 4, 260, 40, $cargo, $cor2, $font );
imagestring( $imagem, 3, 260, 68, $email, $cor, $font );
imagestring( $imagem, 4, 260, 88, $telefone, $cor2, $font );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * 5 - tamanho da fonte. Valores de 1 a 5
 * 15 - Posição X do texto na imagem
 * 515 - Posição Y do texto na imagem
 * $nome - Texto que será escrito
 * $cor - Cor criada pelo imagecolorallocate
 */

// Header informando que é uma imagem JPEG
header( 'Content-type: image/jpeg' );

// eEnvia a imagem para o borwser ou arquivo
imagejpeg( $imagem, NULL, 100 );
/* @Parametros
 * $imagem - Imagem previamente criada Usei imagecreatefromjpeg
 * NULL - O caminho para salvar o arquivo. 
          Se não definido ou NULL, o stream da imagem será mostrado diretamente. 
 * 80 - Qualidade da compresão da imagem.
 */

 

Link para o comentário
Compartilhar em outros sites

  • 0

Funcionou perfeitamente!

Gostaria de saber como faço, se puder me ajudar lógico, para a imagem ser salva com $nome ao clicar em salvar?

É possível?

O código ficou assim...

 

<?php
	header("Content-type: image/jpeg");
	$im = imagecreatefromjpeg( "assinatura.jpg" );
	$green = imagecolorallocate($im, 108, 169, 56);
	$blue = imagecolorallocate($im, , 56, 118);
  
 
  // Texto que será escrito na imagem
	$nome = urldecode( $_GET['nome'] );
	$cargo = urldecode( $_GET['cargo'] );
	$email = urldecode( $_GET['email'] );
	$telefone = urldecode( $_GET['telefone'] );
  
  // Replace path by your own font path
	imagettftext($im, 10, , 260, 30, $blue, "tahomabd.ttf", $nome);
	imagettftext($im, 10, , 260, 53, $green, "tahoma.ttf", $cargo);
	imagettftext($im, 10, , 260, 79, $blue, "tahomabd.ttf", $email);
	imagettftext($im, 10, , 260, 102, $green, "tahoma.ttf", $telefone);
	imagejpeg($im);
	imagedestroy($im);
?>



 

Link para o comentário
Compartilhar em outros sites

  • 0

Entendi. Para isso você precisa passar o segundo parâmetro (caminho onde o arquivo será salvo) na função imagejpeg:

// filtra o nome, pois alguns caracteres não são permitidos em nome de
// arquivo, e também sem esse filtro seria possível salvar o arquivo em
// qualquer pasta do servidor (ex: se alguém mal intencionado digita um
// nome como "Marco/../../temp/Teste", // o arquivo seria salvo na pasta temp)
$nomeArquivo = pathinfo($nome, PATHINFO_FILENAME);
$pasta = "/caminho-para-salvar/";
imagejpeg($im, "{$pasta}/{$nomeArquivo}.jpg");

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...