Ver Mensaje Individual
  #14 (permalink)  
Antiguo 03/09/2011, 12:12
Avatar de JuJoGuAl
JuJoGuAl
 
Fecha de Ingreso: julio-2009
Ubicación: Venezuela
Mensajes: 754
Antigüedad: 17 años, 2 meses
Puntos: 19
Respuesta: Redimencionar imagen queda Distorcionada

Estoy tratando de crear la imagen pero obtengo errores:

me pueden ayudar???

Código PHP:
function findexts ($filename)
        {
            
$filename = strtolower($filename);
            
$exts = preg_split("[/]", $filename);
            
$n = count($exts)-1;
            
$exts = $exts[$n];
            return 
$exts;
        }
        function 
crearimagen($id,$ancho,$alto,$nombre)
        {
            
$archivo            = $_FILES["pro_imgprinc"]["tmp_name"];     // Nombre y ruta del archivo subido a los temporales del servidor
            
$nombreOriginal        = $_FILES["pro_imgprinc"]["name"];        // Nombre del archivo en el PC del usuario
            
$tamaioOrigen        = $_FILES["pro_imgprinc"]["size"];        // Tamaño de la imagen original
            
$opcion                = 2;                                    // opcion para resamplear la imagen
            
$calidad            = 100;                                     // Calidad Final de la Imagen
            
$dir_Destino= '../imagenes/productos/';
            
$dir_Destino.= $nombre;
            
$dir_Destino.= '/';            
            
            
$ext = findexts ($_FILES['pro_imgprinc']['type']); 
            
$imagen.=$id;
            
$imagen.="_";
            
$imagen.=$nombre;
            
$imagen.=".";
            
$imagen.=$ext;
                
            
$nombreDestino.= $dir_Destino;
            
$nombreDestino.= $imagen;
            
            
$tamano=getimagesize( $_FILES["pro_imgprinc"]["tmp_name"]);            
            
$ancho_orig=$tamano[0];
            
$alto_orig=$tamano[1];
                        
            if (
$ancho_orig>$alto_orig)
                    {
                    
$anchoDestino=$ancho;
                    
$altoDestino=($anchoDestino/$ancho_orig)*$alto_orig;
                    }
                else if(
$ancho_orig<$alto_orig)
                    {
                    
$altoDestino=$alto;
                    
$anchoDestino=($alto_dest/$alto_orig)*$ancho_orig;
                    }
                else if (
$ancho_orig==$alto_orig)
                {
                    
$tamano=($ancho/$alto_orig)*$ancho_orig;
                    
$altoDestino=$tamano;
                    
$anchoDestino=$tamano;
                }                
                            
                require_once 
'Imagen.php';
                
// Pasamos datos con los metodos set en vez de tipo JSON
                
$obj_img    = new Imagen();
                
$obj_img    ->set("imagenOrigen"    , str_replace("\\","/",$archivo));        // Usamos el str_replace para mayor compatibilidad con distintos servidores
                
$obj_img    ->set("imagenDestino"    , $nombreDestino);
                
$obj_img    ->set("anchoDestino"    , $anchoDestino);
                
$obj_img    ->set("altoDestino"        , $altoDestino);
                
$obj_img    ->set("recorte"            , array('filas'    => 3, 'columnas'    => 3, 'centrado'    =>    4));
                
$obj_img    ->set("calidadImagen"    , $calidad);
                
$obj_img    ->set("generarArchivo"    , true);     // true genera un archivo en el servidor False la envia para descargar en este caso no se puede enviar nada al servidor).
                
$obj_img    ->set("modo"            , $opcion);
                
$obj_img    ->set('archivoTmp'        , true);    // Si vamos a editarlo directamente de los temporales debemos indicarle que es temporal
                
$obj_img    ->set('borrarOrigen'    , true);     // Se utiliza para borrar la imagen original del servidor. Si lo hacemos desde el temporal se puede dejar sin establecer.
                
$obj_img    ->procesarImagen();    
        }
        
        if(!empty(
$_FILES['pro_imgprinc']) && $_FILES['pro_imgprinc']['error'] == UPLOAD_ERR_OK)
        {
            
//Creo las 3 Copias de Imagenes que Necesito:
            
crearimagen($proid,310,256,'grande');
            
crearimagen($proid,206,170,'normal');
            
crearimagen($proid,155,128,'mediana');
        } 
el Error es:

Warning: getimagesize(C:\Windows\Temp\phpEE31.tmp) [function.getimagesize]: failed to open stream: No such file or directory in C:\AppServ\www\adm\panel_admin_productos_nuevo.php on line 64

y segun leo en este foro el GETSIZE lo estoy haciendo bien... entonces que pasa :S