matthee 3 Denunciar post Postado Janeiro 21, 2013 Olá pessoal boa madrugada, eu estou lendo o livro PHP e MySQL Desenvolvimento web e no capítulo 21 será feito a manipulação de imagens ou algo do tipo, e preciso configurar o libpng para funcionar pois uso ubuntu 12.04 e no livro diz que não vem pronto, uso também o php 5.2, alguém que já fez isso poderia ajudar? Compartilhar este post Link para o post Compartilhar em outros sites
Felipe Sá 3 Denunciar post Postado Janeiro 21, 2013 Olá, Primeiro cheque se o seu ambiente tem ou não a biblioteca GD ou GD2. Para fazer isso, crie um arquivo com o nome qualquer com o seguinte conteúdo: <?php phpinfo(); Logo após abra o arquivo pelo navegador, por exemplo http://localhost/info.php. Se tudo der certo você verá uma listagem com os módulos instalados em seu PHP. No seu caso, procure por "gd" ou "gd2". Se estiverem instaladas provavelmente você não precisará se preocupar. Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 21, 2013 Eai felipe blz? Então velho olha oque eu encontrei aqui no phpinfo, GD Support enabled e também está constando o libpng, mt obrigado quando eu for precisar de algum recurso extra verificarei aqui antes de ir atraz, obrigado. Mas no livro está dizendo que eu preciso configura isso no php.ini --with-png-dir=/path mas que caminho que coloco ali? Mesmo estando tudo certo la no php.info não estou conseguindo rodar o código: <html> <head> <title></title> </head> <body> <?php //configura a imagem $height = 200; $width = 200; $im = ImageCreate($width, $height); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 64); //desenha na imagem ImageFill($im, 0, 0, $blue); ImageLine($im, 0, 0, $width, $height, $white); ImageString($im, 4, 50, 150, "Sales", $white); //enviando para a página Header("Content-type: image/png"); ImagePng($im); ImageDestroy($im); ?> </body></html> Fica dizendo que a imagem contem erros e não pode ser exibida. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 21, 2013 Um dos problemas mais comuns ao se trabalhar com GD é querer renderizar, isto é, enviar ao navegador antes mesmo de testar o código. Se seus alertas de erro estiverem ativados e altos o suficientes para mostrar todos os erros de um código, comentando as linhas do header() e opcionalmente do imagepng() mostrará que você usa a variável $blue mas a mesma não está definida. Se você trocar $blue por $black não produzirá mais nenhum erro e, consequentemente, ao remover os comentários ora adicionados a imagem será enviada corretamente. E só pra constar, ~essa definição de $black não produz preto nem aqui e nem na China. :lol: Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 22, 2013 Sim velho eu copiei o código fielmente do livro, está dessa maneira e não funcionou: <?php $height = 200; $width = 200; $im = ImageCreate($width, $height); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 64); ImageFill($im, 0, 0, $black); ImageLine($im, 0, 0, $width, $height, $white); ImageString($im, 4, 50, 150, "Sales", $white); Header("Content-type: image/png"); ImagePng($im); ImageDestroy($im); ?> Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 22, 2013 Aqui funcionou normalmente, talvez pelo fato de minha instalação cumprir o outro requisito da libpng que é ter a biblioteca zlib instalada e ativada. Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 22, 2013 Mas velho olha aqui: Registered PHP Streams https, ftps, compress.zlib, compress.bzip2, php, file, glob, data, http, ftp, phar, zip Achei isso no php.info(); Tem zip ali olha, hahaha não é esse? Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 22, 2013 Pra ter certeza eu teria de desconfigurar meu ambiente e rodar. Mas procure por uma categoria própria, intitulada zlib, assim como a GD. Ambas devem estar enabled. Algumas extensões do PHP registram Stream Wrapper, a zlib faz isso para que você possa abrir, por exemplo, URI's do tipo zlib:// (as quais eu nunca vi) então é um forte indício de que estja ativada. Experimente rodar esse script com o código abaixo no início, logo abaixo do <?php: ini_set( 'display_errors', TRUE ); error_reporting( E_ALL | E_STRICT ) // PHP > 5 && < 5.4 error_reporting( E_ALL | E_STRICT ) // PHP 5.4+Veja se aparece alguma mensagem. Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 22, 2013 Mesma mensagem bruno a página contem erros e não pode ser exibida, olhei também la no info.php se tem alguma outra coisa com zlib sozinha, não tem não. To achando que vou deixar esse capítulo pra traz vou iniciar logo o de sessões, quando terminar o livro volto a isso já faz dois dias que to tentando fazer funcionar sem sucesso. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 22, 2013 Lembra do que eu falei no post #5 sobr4e o header()? Remove ele pra que você possa ver o erro. :thumbsup: Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 22, 2013 Hmm, coloquei o código da seguinte maneira: <?php $height = 200; $width = 200; $im = ImageCreate($width, $height); $white = ImageColorAllocate($im, 255, 255, 255); $black = ImageColorAllocate($im, 0, 0, 64); ImageFill($im, 0, 0, $black); ImageLine($im, 0, 0, $width, $height, $white); ImageString($im, 4, 50, 150, "Sales", $white); //Header("Content-type: image/png"); ImagePng($im); ImageDestroy($im); ?> E recebi essa coisinha aqui ó: ‰PNG IHDRÈÈ—–<ÝPLTEÿÿÿ@#’îõIDATX…uÓKrå @Q/µWÐIUßÀKÓR”èueÀ€ñ6ºLÏ]UiY¼EPÅPJDI(¥¬(‚¢(´ Z -…‚–BAK¡ MEQ hÚ‚6 M hÚEPÅÚÅÚÅÚÅÚÅÚÅ:DPÅ :Ä :Ä :Ä :Ä :Ä :EPÅ:Å:Å:Å:Å:Ū"(ŠâUq‚ª8AUœ *NP'¨‰ (ÊÔdj25™ƒšÌAMæ KEQ¦ K¦ K¦ K¦ K¦ K¦ .‚¢(Ï .Ï .Ï .Ï .Ï .Ï AEQ% D”„’QA£Š¢J@‰( %£Üƒn"(Šb(%¢$”Œrº‹ (Š¡”ˆ’P2ÊôAQC (%¡d”!è)‚¢(†P"JBÉ(=hAQC (%¡d”+hAQC (%¡d”äˆ (Š¡”ˆ’P2J ªò.ß]d[‡ÛU»É;¾ßMÂ(ßö²µJåçg“{P›úßëëóÔþùxY?u”¿/³Kd,ýÿ§ÏvyÛ9ƒ\ (%¡d”#ÈAQC (%¡d”=DPÅPJDI(e"E1”€QJF)+Š (Š¡”ˆ’Pò/})R0.®IEND®B`‚ Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 22, 2013 Mas não colocou o código descrito no post #11. Se porventura o reporte de erros estiver desligados ou com nível muito baixo para mostrar alguma mensagem vai só continuar mostrando aquilo que está vendo, isto é, a saída de imagepng(). Compartilhar este post Link para o post Compartilhar em outros sites
matthee 3 Denunciar post Postado Janeiro 22, 2013 Eu coloquei a parte dos erros e continuou com a msg saida. Compartilhar este post Link para o post Compartilhar em outros sites
Bruno Augusto 417 Denunciar post Postado Janeiro 23, 2013 Não me restam muitas informações pra te ajudar. Experimenta dar uma olhada nos logs dos Apache e veja se mostra alguma coisa que possa valer como ajuda. Compartilhar este post Link para o post Compartilhar em outros sites