Ver Mensaje Individual
  #14 (permalink)  
Antiguo 19/03/2013, 14:25
Avatar de loncho_rojas
loncho_rojas
Colaborador
 
Fecha de Ingreso: octubre-2008
Ubicación: En el mejor lugar del mundo
Mensajes: 2.704
Antigüedad: 15 años, 6 meses
Puntos: 175
Respuesta: Thumbnails

Tengo este script guardado, no se si te servira, a mi me va bien cuando levanto imagenes y necesito redimensionar a 1024px y el thumb a 70px, por ejemplo, y no estar levantando imagenes que miden 3000px
Código PHP:

//REDIMENSIONAR IMAGEN PEQUEÑA
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);  
    
imagecopyresampled($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); 
    
}

//REDIMENSIONAR IMAGEN MAS GRANDE
function redimension($ruta_imagen$img_nueva$ancho_final$calidad){
        
//Cargo en memoria la imagen que quiero redimensionar
        
$img imagecreatefromJPEG($ruta_imagen);
        
//Obtengo el ancho de la imagen quecargue
        
$ancho_original ImageSX($img);
        
//Obtengo el alto de la imagen que cargue
        
$alto_original ImageSY($img);
        
//SI QUEREMOS UN ANCHO FINAL FIJO, calculamos el ALTO de forma proporcionada
        //$ancho_final = 500;
        //Ancho final en pixeles
        
$alto_final = ($ancho_final $ancho_original) * $alto_original;
        
//SI CONOCEMOS UN ALTO FINAL FIJO, calculamos el ANCHO de forma proporcionada
        //Para usar este caso, comentar las dos lineas anteriores, y descomentar las dos siguientes a este comentario
        /*$alto_final = 250; //Alto final en pixeles
        $ancho_final = ($alto_final / $alto_original) * $ancho_original;*/
        //Creo una imagen vacia, con el alto y el ancho que tendrá la imagen redimensionada
        
$imagen_redimensionada imagecreatetruecolor($ancho_final$alto_final);
        
//Copio la imagen original con las nuevas dimensiones a la imagen en blanco que creamos en la linea anterior
        
imagecopyresampled($imagen_redimensionada$img0000$ancho_final$alto_final$ancho_original$alto_original);
        
//Guardo la imagen ya redimensionada
        
imageJPEG($imagen_redimensionada$img_nueva$calidad);
        
//Libero recursos, destruyendo las imágenes que estaban en memoria
        
imageDestroy($img);
        
imageDestroy($imagen_redimensionada);
    
        } 
Su uso:

Código PHP:

//Preguntamos si nuetro arreglo 'archivos' fue definido
         
if (isset($_FILES["archivos"])) {
             
        
         
//de se asi, para procesar los archivos subidos al servidor solo debemos recorrerlo
         //obtenemos la cantidad de elementos que tiene el arreglo archivos
         
$tot count($_FILES["archivos"]["name"]);

         
//este for recorre el arreglo
         
for ($i 0$i $tot$i++){
             
                
                                                    
            if(
is_uploaded_file($_FILES["archivos"]["tmp_name"][$i])){
         
//con el indice $i, podremos obtener la propiedad que desemos de cada archivo
         //para trabajar con este como si fuera un array continuo
            
$tmp_name $_FILES["archivos"]["tmp_name"][$i];
            
$name $_FILES["archivos"]["name"][$i];
            
$tamano $_FILES["archivos"]["size"][$i];
            
$tipo $_FILES["archivos"]["type"][$i]; 
            
            
            
                    if (!((
strpos($tipo"gif") || strpos($tipo"png")|| strpos($tipo"jpeg")) && ($tamano 5000000))) {
                    echo 
'<div style="width:500px; height:80px; padding:10px; background-color:#FF0000;">';
                    echo 
'<p style="font-size:15px; color:#FFF;"><strong>ERROR DE FORMATO O TAMANHO</strong></p></div>';
                    
                    }else{
                            
/* Crear carpeta temporal para redimension posterior */
                            
$temporal="../../galerias/temporal/";
                            
                            if (!
file_exists($temporal)){
                                    @
mkdir ($temporal0777
                                    or die(
"No se ha podido crear el directorio ".$temporal);
                                }
                                
                                
                            
/* Guardar el archivo */
                            
$destino="../../galerias/".$folder['folder']."/";
                            
$dir_thumb "thumbs/";
                                if(!
file_exists($destino.$dir_thumb)){
                                    @
mkdir ($destino.$dir_thumb0777
                                    or die(
"No se ha podido crear el directorio ".$destino.$dir_thumb);
                                }
                            
                            
$destTHU$destino.$dir_thumb;
                            
                            
                            if(
move_uploaded_file($_FILES["archivos"]["tmp_name"][$i],$temporal.$name)){
                            
redimension($temporal.$name$destino.$name50080);
                            
redimensionar_jpeg($destino.$name$destTHU.$name704780);
                                
//inserto los textos en la base de datos
                             
$sql "INSERT INTO imagenes (idFolder, idGal, big, small) 
                             VALUES ('"
.$folder['idFolder']."', '".$gal['idGal']."', '".$name."', '".$name."')";
                             
                            
borrarDirectorio($temporal);
                                
                        }
//if move_uploaded_file
                        
                    
}//else
                    
                
}//if is_uploaded_file
                
                //cierro mi consulta $sql
                 
mysql_query($sql,$conn) or die(mysql_error($conn)); 
            }
//for
            
            
echo "<p style='color:#093'>Se han agregado las fotograf&iacute;s correctamente</p>";
            echo 
"<a href='../listados/mostrar-galeria.php?tabla=".$gal['nameGal']."'>Editar editar las descripciones de las fotos</a>";
        
      } 
__________________
Ayudo con lo que puedo en el foro, y solo en el foro.. NO MENSAJES PRIVADOS.. NO EMAILS NI SKYPE u OTROS.

Antes de hacer un TOPICO piensa si puedes hallarlo en Google o en el Buscador del Foro...