Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcogismonte

Quebrar linha em Texto em imagem

Recommended Posts

Pessoal, estou tentando quebrar linha nisso:

<img src="ex1.php?nome=<?php echo $nome, $cargo, $email, $telefone?> "/>

 

Preciso que saia assim:

nome

cargo

email

telefone

 

Não funciona com <br/> nem \n... Não sei se estou fazendo certo.

Teria como me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

no get nome vc ta passando $nome, $cargo, $email, $telefone tudo junto vei isso vai da merda ....

 

essa imagem que tu vai exibir pq ela vai ter

nome

cargo

email

telefone ???

 

vc esta gerando a imagem nesse arquivo do src ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim terá que ter estes campos... e gero sim, no arquivo do src...

Veja os códigos:

 

ex1.php

 

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

// Cor de saída
$cor = imagecolorallocate( $imagem, 255, 255, 255 );
/* @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'] );
/* @Parametros
 * $_GET['nome'] - Texto que será escrito
 */

// Escrever nome
imagestring( $imagem, 5, 15, 515, $nome, $cargo, $cor );
/* @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, 80 );
/* @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.
 */

e o index1.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Titulo</title>
</head>

<body>
<?php
$nome = isset($_GET['nome'])?$_GET['nome']:"Teste1";
$cargo = isset($_GET['cargo'])?$_GET['cargo']:"Teste2";
?>
	<form action="" method="get">
    	<p><input name="nome" type="text" value="<?php echo $nome ?>" size="50"/></p>
    	
    	<p><input name="cargo" type="text" value="<?php echo $cargo ?>" size="50"/></p>
		
       <input type="submit" value="Criar Assinatura" />
		
    </form>
	<p></p>
     
     <img src="ex1.php?nome=<?php echo $nome, $cargo?> "/>
</body>
</html>

Teria como me ajudar a quebrar as informações?

Preciso fazer uma assinatura dinâmica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

<img src="ex1.php?nome=<?php echo $nome, $cargo?> "/>

 

Veja com oesta ficando a URL:

ex1.php?nome=nomecargo

 

Estude mais sobre como funciona o HTTP GET

 

 

 

<img src="ex1.php?nome=<?php echo $nome;?>&cargo=<?php echo $cargo;?>"/>

Compartilhar este post


Link para o post
Compartilhar em outros sites

index.php

 

 

 

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Assinatura Libório BrasilBrokers</title>
</head>
 
<body>
     
<?php
$nome = isset($_GET['nome'])?$_GET['nome']:"Teste1";
$cargo = isset($_GET['cargo'])?$_GET['cargo']:"Teste2";
 
if (isset($_POST['assinar'])){
 
$url = "http://localhost/imasters/ex1.php";
 
$data = array('nome' => $nome , 'cargo' => $cargo);
 
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL , $url); 
curl_setopt($ch, CURLOPT_POST , 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
$img = curl_exec($ch);
 
curl_close($ch); 
 
$imgB64 = base64_encode($img);
echo "<img src='data:image/jpg;base64,{$imgB64}' alt='assinatura'>";
}
?>
<form action="" method="post">
    <p><input name="nome" type="text" value="<?php echo $nome ?>" size="50"/></p>
    <p><input name="cargo" type="text" value="<?php echo $cargo ?>" size="50"/></p>
        <input type="submit" name ='assinar' value="Criar Assinatura" />
    </form>
<p></p>
</body>
</html>

 

 

 

ex1.php

 

 

 

 

<?php
$nome = urldecode( $_POST['nome'] );
$cargo = urldecode( $_POST['cargo'] );
 
// Define por header que será gerado um JPG.
header("Content-type:image/jpeg");
 
// Recebe o caminho para a Imagem por GET na URL.
$imagem = 'foto.jpg';
 
// Define-se as dimensões da Imagem, pegando os tamanhos originais da Imagem.
$tamanho = getimagesize($imagem);
$largura = $tamanho[0];
$altura = $tamanho[1];
 
// Define a posição do Texto, caso você altere o texto, terá de mudar esse posicionamento aqui, conforme a quantidade de caracteres, esses valores abaixo são em pixels.
$posX = $largura-130;
$posY = $altura-20; 
 
// Cria-se uma nova Imagem a partir da Imagem Original.
$imagem_original = imagecreatefromjpeg($imagem);
 
// Cria-se a Imagem Final
$imagem_final = imagecreatetruecolor($largura, $altura);
 
// Quando utilizamos o imagecolorallocate() pela primeira vez, ele assume essa cor como fundo da imagem, ou seja o background, nesse caso, como será uma foto, utilizaremos a mesma cor para o texto.
$branco = imagecolorallocate($imagem_final, 255, 255, 255);
 
// Copia-se a imagem para o arquivo Final
imagecopyresized($imagem_final, $imagem_original, 0, 0, 0, 0, $largura+1, $altura+1, $largura, $altura);
 
// Com o comando imagestring() escrevemos os textos, neste comando especificamos os parametros da imagem, o tamanho da fonte que neste caso vai de 1 a 5, a posição X e Y, o texto, e a cor
imagestring($imagem_final, 2, $posX, $posY-10, $nome, $branco);
imagestring($imagem_final, 2, $posX, $posY, $cargo, $branco);
 
// Salva-se virtualmente para exibição, com a qualidade de JPG de 85
imagejpeg($imagem_final,"",85);
 
// Depois, libera-se a memória utilizada
imagedestroy($imagem_final);
 

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como não ficou explícito aqui se o problema foi resolvido, vou postar minha resolução para este problema, onde você poderá imprimir quantas linhas de texto quiser na imagem.

Index.php

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sistema - Criação de Assinaturas</title>
</head>

<body>
<?php
$nome = isset($_GET['nome'])?$_GET['nome']:"Nome";
$setor = isset($_GET['setor'])?$_GET['setor']:"Setor";
$email = isset($_GET['email'])?$_GET['email']:"Email";
$telefone = isset($_GET['telefone'])?$_GET['telefone']:"Telefone";
$ramal = isset($_GET['ramal'])?$_GET['ramal']:"Ramal/Corporativo";
?>
	<form action="" method="get">
    	<input name="nome" type="text" value="<?php echo $nome ?>" size="100"/>
    	<input name="setor" type="text" value="<?php echo $setor ?>" size="100"/>
    	<input name="email" type="text" value="<?php echo $email ?>" size="100"/>
    	<input name="telefone" type="text" value="<?php echo $telefone ?>" size="100"/>
    	<input name="ramal" type="text" value="<?php echo $ramal ?>" size="100"/>
        <input type="submit" value="Criar imagem" />
    </form>
	<img src="processamento.php?nome=<?php echo $nome ?>&setor=<?php echo $setor ?>&email=<?php echo $email ?>&telefone=<?php echo $telefone ?>&ramal=<?php echo $ramal ?>"  />
</body>
</html>

processamento.php

<?php
$imagem = 'base.jpg';
$tamanho = getimagesize($imagem);
$largura = $tamanho[0];
$altura = $tamanho[1];

$imagem_original = imagecreatefromjpeg($imagem);
$imagem_final = imagecreatetruecolor($largura, $altura);

$cor1 = imagecolorallocate( $imagem_final, 69, 69, 69 );
$cor2 = imagecolorallocate( $imagem_final, 80, 80, 80 );

imagecopyresized($imagem_final, $imagem_original, 0, 0, 0, 0, $largura+1, $altura+1, $largura, $altura);

$nome = urldecode( $_GET['nome'] );
$setor = urldecode( $_GET['setor'] );
$email = urldecode( $_GET['email'] );
$telefone = urldecode( $_GET['telefone'] );
$ramal = urldecode( $_GET['ramal'] );

imagestring( $imagem_final, 5, 120, 5, $nome, $cor1 );
imagestring( $imagem_final, 3, 120, 20, $setor, $cor2 );
imagestring( $imagem_final, 3, 137, 43, $email, $cor2 );
imagestring( $imagem_final, 3, 137, 60, $telefone, $cor2 );
imagestring( $imagem_final, 3, 137, 76, $ramal, $cor2 );


header('Content-type: image/jpg');
 
imagejpeg($imagem_final, NULL, 80);

?>

Achei interessante postar, caso alguém ainda tenha a dúvida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.