Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/06/2009, 10:59
Avatar de rompeguesos
rompeguesos
 
Fecha de Ingreso: marzo-2009
Mensajes: 692
Antigüedad: 15 años, 11 meses
Puntos: 8
Pregunta Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib failed to i

Hola amigos, me acabo de dar cuenta de un error en mi galeria de imagenes el cual logro solucionar pero me sale otro jejej, el error es este:

Warning: imagepng() [function.imagepng]: gd-png: fatal libpng error: zlib failed to initialize compressor -- stream error in /mnt/web7/32/27/51920027/htdocs/coriaweb/artistas/jacobo/redimensionar.php on line 36

Warning: imagepng() [function.imagepng]: gd-png error: setjmp returns error condition in /mnt/web7/32/27/51920027/htdocs/coriaweb/artistas/jacobo/redimensionar.php on line 36

Se trata de que cuando subo imagenes PNG me da el error pero no en todas la png solo en algunas, (las que le da la gana), buscando por el foro encontre una solucion a mi codigo ,mi codigo es este:

Código PHP:
<?php
function crearThumb$fuente$destino$dim=120$propor=false$forzar=false ) { 
        
$tipo_imagen explode"."$fuente ); 
        
$sizeof count$tipo_imagen ) - 1
        
$ext strtolower$tipo_imagen[$sizeof] ); 
        if ( 
$ext == "gif" ) { 
            
$fuenteimg = @imagecreatefromgif$fuente ); 
        } 
        elseif ( 
$ext == "png" ) { 
            
$fuenteimg = @imagecreatefrompng$fuente ); 
        } 
        else { 
            
$fuenteimg = @imagecreatefromjpeg$fuente ); 
        } 
        list( 
$ancho$alto$tipo$atr ) = getimagesize$fuente ); 
        if ( 
$ancho $dim || $alto $dim || $forzar ) { 
            if ( 
$propor ) { 
                if ( 
$ancho $alto ) { 
                    
$nAncho $dim
                    
$nAlto $dim/( $ancho/$alto ); 
                } else { 
                    
$nAlto $dim
                    
$nAncho $dim/( $alto/$ancho ); 
                } 
            } else { 
                
$nAncho $dim
                
$nAlto $dim
            } 
            
$thumb imagecreatetruecolor$nAncho$nAlto ); 
            
imagecopyresampled$thumb$fuenteimg0000$nAncho$nAlto$ancho$alto ); 
            
$calidad 100
            if ( 
$ext == "gif" ) {  
                
imagegif$thumb$destino$calidad);  
            }  
            elseif ( 
$ext == "png" ) { 
                
imagepng$thumb$destino$calidad); 
            } 
            else { 
                
imagejpeg$thumb$destino$calidad); 
            } 
        } 
    }  
?>
La solucion trata de que donde indico $calidad = 100; tiene que ser un numero del 0 al 9 y asi si funciona pero el problema es que si pongo uno de esos numeros los otros tipos de imagenes JPEG, GIF se ven fatal.

¿Algun modo de solucionarlo?