Foros del Web » Programando para Internet » PHP »

Problema con este script

Estas en el tema de Problema con este script en el foro de PHP en Foros del Web. Hola. Estoy haciendo un pequeño CMS que incluye subir fotos para una galeria de imagenes. Leyendo varios tutoriales aquí y allá arme un script para ...
  #1 (permalink)  
Antiguo 10/08/2010, 21:13
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 7 meses
Puntos: 10
Problema con este script

Hola.

Estoy haciendo un pequeño CMS que incluye subir fotos para una galeria de imagenes. Leyendo varios tutoriales aquí y allá arme un script para redimensionar o recortar las imagenes segun sea necesario, peor por algun motivo no me funciona.
Este es el script:

Código PHP:
    function crear_thumb($img$tname){
            
// Obtencion de formatos de imagen 
            
if(stristr(strtolower($img),"jpg") or stristr(strtolower($img),"jpeg")){ 
                
$img imagecreatefromjpeg($img); 
                
$tipo "jpg"
            } 
    
            if(
stristr(strtolower($img),"png")){ 
                
$img imagecreatefrompng($img); 
                
$tipo "png"
            } 
             
            if(
stristr(strtolower($img),"gif")){ 
                
$img imagecreatefromgif($img); 
                
$tipo "gif"
            } 
                 
                    
// Obtenemos ancho y alto de la imagen 
            
$ancho imagesx($img); 
            
$alto imagesy($img); 
            echo 
$alto "<br/>" .$ancho;
            if((
$ancho/$alto <= 1.39) && ($alto/$ancho <=0.8) || ($ancho/$alto <= 0.8) && ($alto/$ancho <=1.88)){
                
$n_alto 202
                
$redu = ($n_alto 100) / $alto
                
$n_ancho round($ancho $redu 100); 
                
$thumb imagecreatetruecolor($n_ancho,$n_alto); 
                
var_dump($thumb);
                
var_dump($img);
                if(!
imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto)){echo "cpy <br/>"; }
                switch(
$tipo){
                    case 
"jpg":echo " JPEGLE ";
                    
$img imagecreatefromjpeg($tname);
        
                    case 
"png":
                    
$img imagecreatefrompng($tname);
        
                    case 
"gif":
                    
$img imagecreatefromgif($tname);
                }
                return array(
$n_ancho$n_alto);
                echo 
"hola";
            }else{
                
                
$n_alto 202
                
$redu = ($n_alto 100) / $alto
                
$n_ancho round($ancho $redu 100); 
                
$thumb imagecreatetruecolor($n_ancho,$n_alto); 
                
imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto); 
                switch(
$tipo){
                    case 
"jpg":
                    
$img imagecreatefromjpeg($tname);
        
                    case 
"png":
                    
$img imagecreatefrompng($tname);
        
                    case 
"gif":
                    
$img imagecreatefromgif($tname);
                }
                
                
$ancho imagesx($img);
                
$thumb imagecreatetruecolor(244204);
                if(
imagecopyresampled($thumb$img00abs(($ancho 244) / 2),0244204244204)){
                    echo 
"aja";
                    switch(
$tipo){
                        case 
"jpg":
                        
imagejpeg($thumb$tname); 
            
                        case 
"png":
                        
imagepng($thumb$tname); 
            
                        case 
"gif":
                        
imagegif($thumb$tname); 
                    }

                }
                return array(
244204);
            }

    
            
imagedestroy($thumb); 
    } 
Que estoy haciendo mal? no entiendo por que es que no funciona.
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador
  #2 (permalink)  
Antiguo 10/08/2010, 21:17
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 1 mes
Puntos: 0
Respuesta: Problema con este script

Podrías usar una clase destinada para eso. Yo he utillizado la que está en esta página y me ha funcionado bien.

[URL="http://blog.unijimpe.net/generar-thumbnails-con-php/"]http://blog.unijimpe.net/generar-thumbnails-con-php/[/URL]

Puedes ver el código que emplean y utilizarlo en el tuyo, si quieres.
Espero que te sirva.
  #3 (permalink)  
Antiguo 11/08/2010, 05:40
Avatar de xhiena  
Fecha de Ingreso: enero-2008
Ubicación: Valencia
Mensajes: 34
Antigüedad: 16 años, 2 meses
Puntos: 0
Respuesta: Problema con este script

Cita:
Iniciado por severicks Ver Mensaje
Hola.

Estoy haciendo un pequeño CMS que incluye subir fotos para una galeria de imagenes. Leyendo varios tutoriales aquí y allá arme un script para redimensionar o recortar las imagenes segun sea necesario, peor por algun motivo no me funciona.
Este es el script:

Código PHP:
    function crear_thumb($img$tname){
            
// Obtencion de formatos de imagen 
            
if(stristr(strtolower($img),"jpg") or stristr(strtolower($img),"jpeg")){ 
                
$img imagecreatefromjpeg($img); 
                
$tipo "jpg"
            } 
    
            if(
stristr(strtolower($img),"png")){ 
                
$img imagecreatefrompng($img); 
                
$tipo "png"
            } 
             
            if(
stristr(strtolower($img),"gif")){ 
                
$img imagecreatefromgif($img); 
                
$tipo "gif"
            } 
                 
                    
// Obtenemos ancho y alto de la imagen 
            
$ancho imagesx($img); 
            
$alto imagesy($img); 
            echo 
$alto "<br/>" .$ancho;
            if((
$ancho/$alto <= 1.39) && ($alto/$ancho <=0.8) || ($ancho/$alto <= 0.8) && ($alto/$ancho <=1.88)){
                
$n_alto 202
                
$redu = ($n_alto 100) / $alto
                
$n_ancho round($ancho $redu 100); 
                
$thumb imagecreatetruecolor($n_ancho,$n_alto); 
                
var_dump($thumb);
                
var_dump($img);
                if(!
imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto)){echo "cpy <br/>"; }
                switch(
$tipo){
                    case 
"jpg":echo " JPEGLE ";
                    
$img imagecreatefromjpeg($tname);
        
                    case 
"png":
                    
$img imagecreatefrompng($tname);
        
                    case 
"gif":
                    
$img imagecreatefromgif($tname);
                }
                return array(
$n_ancho$n_alto);
                echo 
"hola";
            }else{
                
                
$n_alto 202
                
$redu = ($n_alto 100) / $alto
                
$n_ancho round($ancho $redu 100); 
                
$thumb imagecreatetruecolor($n_ancho,$n_alto); 
                
imagecopyresized($thumb,$img,0,0,0,0,$n_ancho,$n_alto,$ancho,$alto); 
                switch(
$tipo){
                    case 
"jpg":
                    
$img imagecreatefromjpeg($tname);
        
                    case 
"png":
                    
$img imagecreatefrompng($tname);
        
                    case 
"gif":
                    
$img imagecreatefromgif($tname);
                }
                
                
$ancho imagesx($img);
                
$thumb imagecreatetruecolor(244204);
                if(
imagecopyresampled($thumb$img00abs(($ancho 244) / 2),0244204244204)){
                    echo 
"aja";
                    switch(
$tipo){
                        case 
"jpg":
                        
imagejpeg($thumb$tname); 
            
                        case 
"png":
                        
imagepng($thumb$tname); 
            
                        case 
"gif":
                        
imagegif($thumb$tname); 
                    }

                }
                return array(
244204);
            }

    
            
imagedestroy($thumb); 
    } 
Que estoy haciendo mal? no entiendo por que es que no funciona.
que es lo que te sale? como sabes que esta mal? como llamas a la función?
  #4 (permalink)  
Antiguo 11/08/2010, 12:20
 
Fecha de Ingreso: septiembre-2009
Mensajes: 306
Antigüedad: 14 años, 7 meses
Puntos: 10
Respuesta: Problema con este script

este es el mensage de error que me da php:
Cita:
Warning: imagecreatefromjpeg(../images/galeria/t_511113g_5.jpg) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in D:\HostingSpaces\functions.php on line 294
ya revise y la carpeta tiene todos los permisos para escritura asi que no es eso

la funcion la llamo de esta forma:

Código PHP:
if(move_uploaded_file $_FILES[$var['img']][ 'tmp_name' ], $destino $img)){  // Subimos el archivo con nombre modificado
    
$iname $destino $img;
    
$tname $destino "t_" $img//Destino de la imagen thumb
    
$size =  (crear_thumb($iname$tname));    print_r($size);
    
$img"'".$img."'";
} else{
$img="'error'";} 
__________________
Mantente al tanto del acontecer Turistico nacional
Visita el Parque Bicentenario El Salvador

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:01.