Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Eu precisava de um script de geração de imagens com texto.
Aí, achei esse neste site:
http://php.eduardokraus.com/adicionando-texto-a-imagem-com-php
O problema que na minha hospedagem, a imagem não aparece.
OBS: Eu tenho a biblioteca GD habilitada na minha hospedagem.
/applications/core/interface/imageproxy/imageproxy.php?img=http://php.eduardokraus.com/code/10026/gd.jpg&key=42282fce777a770f1e00f35f9b380094d907c7d6a0e3f2429bf5d2b4adbab80e" alt="gd.jpg" />
Código PHP:
<?php
// Carregar imagem já existente no servidor
$imagem = imagecreatefromjpeg( "ex1.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( 'Teste' );
/* @Parametros
// Escrever nome
imagestring( $imagem, 5, 15, 515, $nome, $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 NULL a imagem será mostrado no browser.
* 80 - Qualidade da compresão da imagem.
*/
?>
Sinceramente, eu não entendo porque não aparece.
Ta tudo certinho, o código todo.
NÃO GERA ERRO, APENAS MOSTRA O ICONE DE LINK DA IMAGEM QUEBRADO.
Para fins de testes, retire a linha do header(). Ele vai ocultar qualquer mensagem de erro gerada.
Aparece vários códigos da imagem, mas a imagem não aparece.
Se aparece o código binário, sem erros do PHP, deveria funcionar. A não ser que a imagem não seja jpeg. No seu exemplo, você força o header a ser image/jpeg. Se for png, gif ou outra, não vai funcionar. Certifique-se de que a imagem é, de fato, jpeg.
Se aparece o código binário, sem erros do PHP, deveria funcionar. A não ser que a imagem não seja jpeg. No seu exemplo, você força o header a ser image/jpeg. Se for png, gif ou outra, não vai funcionar. Certifique-se de que a imagem é, de fato, jpeg.
É jpeg msm.
Inclusive no site que ele postou tem um exemplo funcionando perfeitamente.
Não entendo.
Habilite todas as exibições de erro como mostrado neste tópico e tente novamente, ainda sem o header, pra ver se algum notice/warning é exibido
Habilite todas as exibições de erro como mostrado neste tópico e tente novamente, ainda sem o header, pra ver se algum notice/warning é exibido
Nenhum notice/warning é exibido.
Estranho... testei seu código aqui e funciona normalmente
Deve ter alguma outra parte do código que está inserindo algum caractere a mais, além do binário da imagem. Esse arquivo é acessado diretamente ou é incluído com include/require?
Veja o código-fonte gerado no navegador. Talvez haja espaço em branco ou algum caractere inválido antes do código da imagem.
Só para testes, dê um echo em uma letra qualquer antes do imagejpeg. Se no código aparecer algo antes dessa letra, é porque há algo a mais sendo exibido, além do binário da iamgem
>
Estranho... testei seu código aqui e funciona normalmente
Deve ter alguma outra parte do código que está inserindo algum caractere a mais, além do binário da imagem. Esse arquivo é acessado diretamente ou é incluído com include/require?
Veja o código-fonte gerado no navegador. Talvez haja espaço em branco ou algum caractere inválido antes do código da imagem.
Só para testes, dê um echo em uma letra qualquer antes do imagejpeg. Se no código aparecer algo antes dessa letra, é porque há algo a mais sendo exibido, além do binário da iamgem
>
Estranho... testei seu código aqui e funciona normalmente
Deve ter alguma outra parte do código que está inserindo algum caractere a mais, além do binário da imagem. Esse arquivo é acessado diretamente ou é incluído com include/require?
Veja o código-fonte gerado no navegador. Talvez haja espaço em branco ou algum caractere inválido antes do código da imagem.
Só para testes, dê um echo em uma letra qualquer antes do imagejpeg. Se no código aparecer algo antes dessa letra, é porque há algo a mais sendo exibido, além do binário da iamgem
Não estou precisando mais.
Não consegui resolver, mas tudo bem.
Valeu pelo interesse.
:D
Para fins de testes, retire a linha do header(). Ele vai ocultar qualquer mensagem de erro gerada.