Vitor RC 11 Denunciar post Postado Abril 4, 2015 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. 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 4, 2015 Para fins de testes, retire a linha do header(). Ele vai ocultar qualquer mensagem de erro gerada. Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Abril 4, 2015 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 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. Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Abril 5, 2015 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 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 Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Abril 5, 2015 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. Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Abril 5, 2015 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 Compartilhar este post Link para o post Compartilhar em outros sites
Vitor RC 11 Denunciar post Postado Abril 5, 2015 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 Compartilhar este post Link para o post Compartilhar em outros sites