Foros del Web » Programando para Internet » PHP »

Tamaño proporcional thumbnail

Estas en el tema de Tamaño proporcional thumbnail en el foro de PHP en Foros del Web. Saludos a todos Al crear un thumbnail quiero poner solo el width (ancho) y que el height (alto) sea proporcional para que no se deforme ...
  #1 (permalink)  
Antiguo 20/09/2010, 17:56
 
Fecha de Ingreso: junio-2009
Mensajes: 20
Antigüedad: 14 años, 10 meses
Puntos: 0
Tamaño proporcional thumbnail

Saludos a todos

Al crear un thumbnail quiero poner solo el width (ancho) y que el height (alto) sea proporcional para que no se deforme la imagen, mi cpodigo es el siguiente:

Código PHP:
<?php
      $status 
"";
      (
$_POST["action"] == "upload") or die ("Error al subir la imagen.");
          
// obtenemos los datos del archivo
          
$tamano $_FILES["archivo"]['size'];
          
$tipo $_FILES["archivo"]['type'];
          
$archivo $_FILES["archivo"]['name'];
          
$prefijo substr(md5(uniqid(rand())),0,6);
         
          
            (
$archivo != "") or die ("Error al subir la imagen ".$archivo);
              
// guardamos el archivo a la carpeta "capturas"
            
($tipo == "image/jpeg" || $tipo == "image/jpg") or die ("Sólo se admiten imágenes en <b>.jpg</b> y <b>.jpeg</b>");
              
$destino =  "capturas/".$prefijo."_".$archivo;
            (
copy($_FILES['archivo']['tmp_name'],$destino)) or die ("Error al subir la imagen ".$archivo);
              
$status "La imagen <b>".$archivo."</b> se a subido correctamente !";
              echo 
$status;
         
//aquí empieza el código de creación del thumbnail
          
$source=$destino// archivo de origen
          
$dest="capturas/thumb/tb_".$archivo// archivo de destino
          
$width_d=117// ancho de salida
          
$height_d=82// alto de salida

            
list($width_s$height_s$type$attr) = getimagesize($source$info2); // obtengo información del archivo
          
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen
          
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida

            
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona
            
imagejpeg($gd_d$dest); // graba
        
        // Se liberan recursos
        
imagedestroy($gd_s);
        
imagedestroy($gd_d);

?>
Lo saque del siguiente tema:
http://www.forosdelweb.com/f18/subir-imagen-crear-thumbnail-mismo-script-527958/

En el codigo anterior tengo que especificar el alto tambien
Código PHP:
  imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona 
Y si no pongo ese parametro me manda error. Espero que me puedan ayudar. Gracias.
  #2 (permalink)  
Antiguo 21/09/2010, 17:47
 
Fecha de Ingreso: febrero-2008
Mensajes: 675
Antigüedad: 16 años, 3 meses
Puntos: 5
Respuesta: Tamaño proporcional thumbnail

Despues de muchas pruebas, he conseguido hacerlo.
Te paso tu codigo modificado.
Código PHP:
              // obtenemos los datos del archivo 
          
$tamano $_FILES["archivo"]['size']; 
          
$tipo $_FILES["archivo"]['type']; 
          
$archivo $_FILES["archivo"]['name']; 
          
$prefijo substr(md5(uniqid(rand())),0,6); 
          
          
    
              
// guardamos el archivo a la carpeta "capturas" 
            
($tipo == "image/jpeg" || $tipo == "image/jpg"); 
              
$destino =  "galeria/".$prefijo."_".$archivo
            
$copy=copy($_FILES['archivo']['tmp_name'],$destino);
          
//aquí empieza el código de creación del thumbnail
             
$sizegetimagesize("$destino");
          
          
$width=$size[0];
          
$height=$size[1];
          
          
$source=$destino// archivo de origen 
          
$dest="galeriap/tb_".$prefijo.$archivo// archivo de destino 
          
$width_d  100// Definimos el tamaño a 100 px 
          
$height_d = ($width_d $height) / $width ;

            list(
$width_s$height_s$type$attr) = getimagesize($source$info2); // obtengo información del archivo 
          
$gd_s imagecreatefromjpeg($source); // crea el recurso gd para el origen 
          
$gd_d imagecreatetruecolor($width_d$height_d); // crea el recurso gd para la salida 

            
imagecopyresampled($gd_d$gd_s0000$width_d$height_d$width_s$height_s); // redimensiona 
            
imagejpeg($gd_d$dest); // graba 
         
        // Se liberan recursos 
        
imagedestroy($gd_s); 
        
imagedestroy($gd_d); 

Etiquetas: tamaño, 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 20:38.