Ir para conteúdo

POWERED BY:

Arquivado

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

Williams Duarte

[Resolvido] Problema com função

Recommended Posts

Galera esta função que reduz a imagem esta funcionando somente 2 de 3

 

a gif e a jpg funciona perfeitamente, mas quando puxo a imagem no formato png e da o seguinte erro na linha 86

 

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib error in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib error in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib error in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition in /home/acessomt/www/painel/classes/funcoes.php on line 86

 

que é refente a:

imagepng($image_p, $nome_foto, 100);

Segue o código completo da função

 

<?php
//########################  Função para imagem JPG ###########################
function reduz_imagem_jpg($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefromjpeg($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagejpeg($image_p, $nome_foto, 100);
imagedestroy($image);
imagedestroy($image_p);
}


//########################  Função para imagem PNG ###########################
function reduz_imagem_gif($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefromgif($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagegif($image_p, $nome_foto, 100);
imagedestroy($image);
imagedestroy($image_p);
}

//########################  Função para imagem PNG ###########################

function reduz_imagem_png($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefrompng($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagepng($image_p, $nome_foto, 100);
imagedestroy($image);
imagedestroy($image_p);
}
?>

Qualquer coisa posta ai http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Axei isso na net:

 

Manual do GD

 

To enable support for png add --with-png-dir=DIR. Note, libpng requires the zlib library, therefore add --with-zlib-dir[=DIR] to your configure line.

http://www.php.net/gd

Compartilhar este post


Link para o post
Compartilhar em outros sites

segundo a mensagem de erro

parece ser relativo à compressão zlib

 

antes de aplicar uma chamada para "imagejpeg()"

verifique qual o tipo de imagem está sendo processada.

 

se for PNG, ao invés de chamar "imagejpeg()", chame por "imagepng()"

 

o nivel de compressão possui regra diferente para PNG, valores de 0 à 9

 

tabela:

 

imagepng() -> 0-9.
imagegif()  -> nao tem
imagejpeg() -> 0 à 100

Compartilhar este post


Link para o post
Compartilhar em outros sites

hinom fiz seguindo a sua tabela e na mosca

 

voce e o cara! http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

<?php
//########################  Função para imagem JPG ###########################
function reduz_imagem_jpg($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefromjpeg($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagejpeg($image_p, $nome_foto, 100);
imagedestroy($image);
imagedestroy($image_p);
}


//########################  Função para imagem GIF ###########################
function reduz_imagem_gif($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefromgif($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagegif($image_p, $nome_foto);
imagedestroy($image);
imagedestroy($image_p);
}

//########################  Função para imagem PNG ###########################

function reduz_imagem_png($img, $max_x, $max_y, $nome_foto) {

//pega o tamanho da imagem ($original_x, $original_y)
list($width, $height) = getimagesize($img);

$original_x = $width;
$original_y = $height;

// se a largura for maior que altura
if($original_x > $original_y) {
   $porcentagem = (100 * $max_x) / $original_x;	  
}
else {
   $porcentagem = (100 * $max_y) / $original_y;  
}

$tamanho_x = $original_x * ($porcentagem / 100);
$tamanho_y = $original_y * ($porcentagem / 100);

$image_p = imagecreatetruecolor($tamanho_x, $tamanho_y);
$image   = imagecreatefrompng($img);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $tamanho_x, $tamanho_y, $width, $height);

imagepng($image_p, $nome_foto, 9);
imagedestroy($image);
imagedestroy($image_p);
}
?>
Abraços http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

Imagem Postada

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.