Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/12/2010, 15:39
Avatar de geeck22
geeck22
 
Fecha de Ingreso: agosto-2010
Ubicación: Tijuana B.C.
Mensajes: 79
Antigüedad: 13 años, 8 meses
Puntos: 7
Pregunta Redimencionar imagen 2 veces?

Hola a todos, tengo una duda, estoy creando un script donde cuando un usuario suba una imagen, si esta imagen excede una medida (640px de ancho o 480px de alto) se redimencione a estas medidas, para asi la imagen no descuadre en el navegador, ya que quiero hacer una galeria con lightbox,

Bueno esta parte esta hecha pero no logro crear el thumbnail correspondiente a cada imagen :\
Alguna Idea?

Este es mi Script:
Espero me puedan decir que le falta para lo que quiero o que le sobra..
Gracias y Saludos
Código PHP:
                    <?php
                    $folder 
"../../../galeria/blusas/";
                    
$folder_mn "../../../galeria/blusas/mn/";
                    
$maxlimit 5242880;
                    
$allowed_ext "jpg,gif,bmp,png,jpeg";
                    
$overwrite "no";
                    
$match ""
                    
$filesize $_FILES['userfile']['size'];
                    
$caracteres "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
                    
$rango 6;
                    
$max=strlen($caracteres)-1;
                    for (
$i=0;$i<$rango;$i++) {
                    
$filenamerand .= substr($caracteresrand(0$max), 1);}
                    
$filename = ($filenamerand).".".end(explode('.',$_FILES['userfile']['name']));
                    
$filename_mn = ($filenamerand)."-mn".".".end(explode('.',$_FILES['userfile']['name']));
                    
$error "";
                    
$original $_FILES['userfile']['name'];

                    
$imagen $_FILES['userfile']['tmp_name'];    
                    
$origen$imagen;
                    
$destino $imagen;
                    
$destino_temporal=tempnam("tmp/","tmp");
                    
$maxsize[0] =640;
                    
$maxsize[1] =480;
                    
$size GetImageSize($origen);
                               
$width $size[0];  
                               
$height $size[1];  
                    
$ancho $maxsize[0];
                    
$alto  $maxsize[1];

                    if (
$ancho && ($size[0] < $size[1])) {
                        
$ancho = ($alto $size[1]) * $size[0];
                    } else {
                        
$alto = ($ancho $size[0]) * $size[1];
                    } 

                    
redimensionar_jpeg($origen$destino_temporal$ancho$alto100);

                    
$fp=fopen($destino,"w");
                    
fputs($fp,fread(fopen($destino_temporal,"r"),filesize($destino_temporal)));
                    
fclose($fp);

                    function 
redimensionar_jpeg($img_original$img_nueva$img_nueva_anchura$img_nueva_altura$img_nueva_calidad)
                    {
                        
$img ImageCreateFromJPEG($img_original);
                        
$thumb imagecreatetruecolor($img_nueva_anchura,$img_nueva_altura);
                        
ImageCopyResized($thumb,$img,0,0,0,0,$img_nueva_anchura,$img_nueva_altura,ImageSX($img),ImageSY($img));
                        
ImageJPEG($thumb,$img_nueva,$img_nueva_calidad);
                        
ImageDestroy($img);
                    }
                    
                    if(!
$filename || $filename==""){ 
                       
$error "- Ningún archivo selecccionado para subir.<br>";
                    }elseif(
file_exists($folder.$filename) && $overwrite=="no"){
                       
$error "- El archivo <b>$filename</b> ya existe<br>";
                    }

                    if(
$filesize 1){ 
                       
$error .= "- Archivo vacío.<br>";
                    }elseif(
$filesize $maxlimit){ 
                       
$error .= "- Este archivo supera el máximo tamaño permitido.<br>";
                    }

                    
$array_ext explode (';',$allowed_ext);
                    
$ext strstr($filename['name'],'.');
                    
$ext=substr($ext,1);
                        if (!
in_array($ext,$array_ext)) {
                            
$match 1;
                    }

                    if(!
$match){
                       
$error .= "- Este tipo de archivo no está permitido: $filename<br>";
                    }
                    
                    if(
$error){
                       print 
"Se ha producido el siguiente error al subir el archivo:<br> $error";
                    }else{
                       if(
move_uploaded_file($imagen$folder.$filename)){ 
                    
mysql_connect('localhost','root','') or die('<b>Error conectando al servidor MySQL:</b><br />'.mysql_error());
                    
mysql_select_db('cherry') or die('<b>Error seleccionando la base de datos:</b><br />'.mysql_error()); 
                    
mysql_query("INSERT INTO blusas (id, imagen, nombre) VALUES ('', 'http://127.0.0.1/cherry Remodelacion/galeria/blusas/$filename', '$original')");
                    
move_uploaded_file($imagen$folder_mn.$filename_mn);
                        echo 
'Se subio bien ';
                        echo 
$filename;
                          }else{
                          print 
"Error! Puede que el tamaño supere el máximo permitido por el servidor. Inténtelo de nuevo."
                       }
                       
?>