Foros del Web » Programando para Internet » PHP »

Redimencionar imagen 2 veces?

Estas en el tema de Redimencionar imagen 2 veces? en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 15/12/2010, 15:39
Avatar de geeck22  
Fecha de Ingreso: agosto-2010
Ubicación: Tijuana B.C.
Mensajes: 79
Antigüedad: 13 años, 7 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."
                       }
                       
?>
  #2 (permalink)  
Antiguo 16/12/2010, 05:15
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Redimencionar imagen 2 veces?

Es necesario que le crees un thumbnail o te sera mas facil forzarle un tamaño por css dado que ya estan redimensionadas las imagenes ?

Saludos!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 16/12/2010, 08:31
Avatar de geeck22  
Fecha de Ingreso: agosto-2010
Ubicación: Tijuana B.C.
Mensajes: 79
Antigüedad: 13 años, 7 meses
Puntos: 7
Respuesta: Redimencionar imagen 2 veces?

Gracias!, solucione el problema ;)

Etiquetas: redimencionar, thumbnails
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 19:55.