Foros del Web » Programando para Internet » PHP »

cambiar nombre y redimensionar imagen.

Estas en el tema de cambiar nombre y redimensionar imagen. en el foro de PHP en Foros del Web. Lo que necesito hacer es redimensionar las imagenes del directorio a dos medidas especificas: directorio:9944565 Imagenes del directorio: 9944565.jpg, 9944565_a.jpg, 9944565_b.jpg necesito dejar 9944565.jpg a ...
  #1 (permalink)  
Antiguo 12/09/2009, 10:46
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
cambiar nombre y redimensionar imagen.

Lo que necesito hacer es redimensionar las imagenes del directorio a dos medidas especificas:
directorio:9944565
Imagenes del directorio:
9944565.jpg, 9944565_a.jpg, 9944565_b.jpg
necesito dejar 9944565.jpg a 139x82 y
9944565_a.jpg como 9944565_a-TH.jpg a 41x37
9944565_a.jpg como 9944565_b-TH.jpg a 41x37

Este es el codigo que tengo hasta el momento:

Código PHP:
<?
//$codigo es el nombre del directorio
//Reviso cantidades de archivos contenidas.
//vector[] es donde vienen los nombre del archivo ej:9944565.jpg, 9944565_a.jpg ect...
//count es cantidades de imagenes 
 
for($i=0;$i<$count;$i++)                   
 {                                          
      
$ext=strtolower(substr($vector[$i],-3,3
      
if($ext=="jpg" || $ext=="JPG")         
      {                                      
          
$a=$a+1;                            
          
//nombre de foto                    
          
$namex=explode(".",$vector[$i]);    
          
$name=$namex[0];                    
          if(
$name == $codigo)                
         {   
             
//Nombre de Imagen                                 
             
$nombre=$vector[$i];              
             
//redimensiono a 139x82           
             
$width_d=139;                     
             
$height_d=82;  
          }                                   
         else                                
         {                                   
             
//Nuevo nombre de Imagen
             
$nombre=$name."-TH.".$ext
             
//redimensiono a 41x37                                      
             
$width_d=41;                                                
             
$height_d=37
          }    
         
//*******Rutina de redimensionado********
         //Directorio origen de donde viene el archivo                                                         
          
$dest="/imagenes/img/nproductos/".$codigo;           
          
//Obtengo informacion del archivo original                    
          
list($width_s$height_s$type$attr) = getimagesize($vect
or[$i],$info2);                                                                 
           
//Recurso gd para el origen                                   
          
$gd_s=imagecreatefromjpeg($vector[$i]);                       
          
//Recurso gd para la salida                                   
          
$gd_d=imagecreatetruecolor($width_d$height_d);              
          
//Desactivo procesamiento automatico                          
          
imagealphablending($gd_dfalse);                             
          
//Hago que alpha original se grabe en el archivo destino      
          
imagesavealpha($gd_dtrue);                                  
          
//redimensiono                                                
          
imagecopyresampled($gd_d$gd_s0000$width_d$height
_d
$width_s$height_s);                                                       
          
//Grabo
                                                      
          
imagejpeg($gd_d$dest);                                      
          
//Libero los recursos                                         
          
imagedestroy($gd_s);                                          
          
imagedestroy($gd_d);       }                                                                
 }
?>
Problemas con rutina de redimensionado.
  #2 (permalink)  
Antiguo 12/09/2009, 10:54
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: cambiar nombre y redimensionar imagen.

Yo hice una función para ajustar una imagen a una "caja" de ancho $maxW y alto $maxH:
Código PHP:
/**
 *
 * @param int $maxW
 * @param int $maxH
 * @param string $imgUrl
 * @param int $multiploH
 * @return image/jpg
 */
function resizeImage($maxW$maxH$imgUrl$multiploH=18){
    
$im=getimagesize($imgUrl);
    if(!
$im){//error
      
trigger_error("$imgUrl no es una imagen valida"E_USER_WARNING);
      return 
false;
    }
    
$imW=$im[0];
    
$imH=$im[1];
    
$Imp=$imW/$imH;
    
//echo "imW $imW maxW $maxW imH $imH maxH $maxH";
    
if($imW<=$maxW && $imH<=$maxH){
      
$newH=$imH;
      
$newW=$imW;
    } else if(
$imW>$imH && ($imW>$maxW || $imH $maxH)){//Ancho mayor a alto
      
$newW=$maxW;
      
$newH=1/($Imp/$newW);
    } else if(
$imW<$imH && ($imW>$maxW || $imH $maxH)){//Alto mayor a ancho
      
$newH=$maxH;
      
$newW=$newH*$Imp;
    } else if(
$imW==$imH){//imagen cuadrada
      
if($imW>$maxW){//imagen mayor a lo requerido
          
$newW=$maxW;
          
$newH=$maxW;
      }else{
          
$newH=$maxH;
          
$newW=$maxH;
      }
    }
    if(
is_numeric($multiploH)&&$multiploH>0){
        
$newH floor($newH/$multiploH)*$multiploH;
        
$newW=$newH*$Imp;
    }
    switch(
$im[2]){
        case 
IMAGETYPE_JPEG:
            
$img imagecreatefromjpeg($imgUrl);
            break;
        case 
IMAGETYPE_GIF:
            
$img imagecreatefromgif($imgUrl);
            break;
        case 
IMAGETYPE_PNG:
            
$img imagecreatefrompng($imgUrl);
            break;
    }
    
$thumb imagecreatetruecolor($newW$newH);
    
imagecopyresampled($thumb$img0000$newW$newH$imW$imH);
    
header("Content-type: image/jpeg");
    
imagejpeg($thumb);
    
imagedestroy($thumb);
    
imagedestroy($img);

__________________
I see dead pixels
  #3 (permalink)  
Antiguo 12/09/2009, 11:00
 
Fecha de Ingreso: octubre-2005
Mensajes: 405
Antigüedad: 18 años, 6 meses
Puntos: 1
Respuesta: cambiar nombre y redimensionar imagen.

Gracias por la funcion pero me podria especificar a que corresponden cada una de las variables alli mensionadas, y cual es la funcion que ellas cumplen. Para entenderlo un poco mas.
  #4 (permalink)  
Antiguo 12/09/2009, 11:04
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: cambiar nombre y redimensionar imagen.

ok. Digamos que tu quieres redimensionar una imagen a un tamaño maximo de 300 x 400 px.
y tu imagen se encuentra en "directorioImagen/miImagen.jpg":
Código PHP:
//300 de ancho, 400 de alto, 
resizeImage(300400"directorioImagen/miImagen.jpg"
__________________
I see dead pixels
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 04:11.