Ver Mensaje Individual
  #8 (permalink)  
Antiguo 07/04/2004, 05:35
josemi
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 21 años, 10 meses
Puntos: 16
Veamos, no te lo he hecho con tu programa porque tu programa no es un buen ejemplo de la causa del problema. Inentaba que entendieras el problema.

Porque creo que te hubiese dicho:

En tu codigo simplemente dentro de la funcion redimensionar_jpeg() sustituye $foto por $img_original y ya esta, y te queda:
Código PHP:

<?php

  

  
function redimensionar_jpeg($img_original$img_nueva$anchura$altura,$img_nueva_calidad) {

    

    
// crear imagen desde original

    
$img ImageCreateFromJPEG($img_original);

    

    
//miramos el tamaño de la imagen original

    
$datos getimagesize($img_original);



    
//Si el alto es mas grande que el ancho

    
if($datos[1]>$datos[0]){

    

        
//intentamos escalar la imagen original a la medida que nos interesa

        
$ratio = ($datos[1] / $altura);

           
$anchura round($datos[0] / $ratio);

    

            
// crear imagen nueva

           
$thumb ImageCreateTrueColor($anchura,$altura);

    

           
// redimensionar imagen original copiandola en la imagen

         
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$a
ltura
,$datos[0],$datos[1]);

    

            
// guardar la imagen redimensionada donde indicia $img_nueva

            
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);

    }



    
//Si el ancho es mas grande que el alto

    
if($datos[0]>$datos[1]){

    

        
//intentamos escalar la imagen original a la medida que nos interesa

        
$ratio = ($datos[0] / $anchura);

            
$altura round($datos[1] / $ratio);

    

            
// crear imagen nueva

            
$thumb ImageCreateTrueColor($anchura,$altura);

    

            
// redimensionar imagen original copiandola en la imagen

         
ImageCopyResized($thumb,$img,0,0,0,0,$anchura,$a
ltura
,$datos[0],$datos[1]);

    

            
// guardar la imagen redimensionada donde indicia $img_nueva

            
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);

    }

    

  }



  
redimensionar_jpeg($foto,"mini_" .$foto,200,200,100);

?>
fin.

Sinceramente, no se si de ahi entenderias que dentro de la funcion no tienes acceso a las variables definidas fuera de la funcion, tal como explica la pagina del manual que te puse (¿la leiste?). Y que creo que es mejor pasar los valores como parametros, no intentar acceder a las variables "globales" directamente.

Creo que para aprender tienes que pegarte con el problema, entenderlo y una vez entendido, pelearte con la solucion. Esto supone leer, volver a leer, probar, volver a leer, si no se tiene claro preguntar sobre eso en concreto que no se tiene claro, volver a leer, volver a probar, etc. Proceso que puede llevarte 1 hora, 5 minutos o 3 dias.

Pero una vez entendido el problema y la solucion, la proxima vez que tengas un problema parecido (no exactamente igual), lo podras resolver en un abrir y cerrar de ojos.

Ademas, cuando contesto, intento que la contestacion sirva a cualquiera que tenga una duda parecida que pueda que lea este mensaje. Asi que no es una contestacion solo para tu caso concreto, sino para la causa de tu problema concreto.

Saludos.

PD: yazo, no es una critica contra ti ni contra tu mensaje, es simplemente una "declaracion de intenciones", un explicacion de por que no suelo poner el codigo solucion directamente (a no ser que el codigo sea mas explicativo que una explicacion mia).
__________________
Josemi

Aprendiz de mucho, maestro de poco.