Ir para conteúdo

POWERED BY:

Arquivado

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

matthee

Configurando libpng

Recommended Posts

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

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

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

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

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

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

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

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

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

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

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

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

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

×

Informação importante

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