Ver Mensaje Individual
  #5 (permalink)  
Antiguo 11/02/2010, 15:49
Avatar de santris
santris
 
Fecha de Ingreso: agosto-2009
Ubicación: Sant Feliu de Llobregat
Mensajes: 955
Antigüedad: 14 años, 8 meses
Puntos: 66
Respuesta: Redimencionar una Imagen

Hola,

Un ejemplo probado ok, por si lo quieres adaptar.

Código PHP:
<?php
function fun_resizejpg($imgsrc,$imgnew,$newx,$newy,$quality){  
if( 
file_exists($imgsrc) )     {  
list(
$srcx,$srcy,$ext) = getimagesize($imgsrc);       
switch( 
$ext)       {    
case 
:     
$old imagecreatefromgif($imgsrc);                     
$img imagecreate($srcx,$srcy);
imagecolorallocate($img255255255);                             
imagecopy($img,$old,0,0,0,0,$srcx,$srcy); 
break;               
case 
:     
$img imagecreatefromjpeg($imgsrc); 
break;                           
case 
:     
$img imagecreatefrompng($imgsrc);
 break;    
case 
6:     
$img imagecreatefromwbmp($imgsrc);  
break;               
default:
print_r(getimagesize($imgsrc)); 
return 
false;       }                
$tamx=$srcx;         
$tamy=$srcy;        
if(
$srcx>$newx)
$pv=($srcx>$srcy)?$srcx/$newx:$srcy/$newy;        
elseif(
$srcy>$newy)
$pv=($srcy>$srcx)?$srcy/$newy:$srcx/$newx;        
if(isset(
$pv)){    
$srcx=ceil($srcx/$pv);     
$srcy=ceil($srcy/$pv);     }               
$new imagecreatetruecolor ($srcx$srcy);             
imagecopyresampled ($new$img0000$srcx$srcy$tamx$tamy);                     
imagejpeg($new,(substr($imgnew,0,strrpos($imgnew,"."))).".jpg",$quality);        
imagedestroy($img);              
return 
true;    

else 
return 
false;
}


if(isset( 
$_FILES["foto"]["name"])){
$_FILES["foto"]["name"] = str_replace(" ","_",$_FILES["foto"]["name"]);
 
    
move_uploaded_file($_FILES["foto"]["tmp_name"], "./images/".$_FILES["foto"]["name"]);    


$imgsrc"./images/".$_FILES["foto"]["name"];
$imgnew"./images/".$_FILES["foto"]["name"];
$ancho=getimagesize($imgsrc);
$factor=400/$ancho[0]; 
$newx=$ancho[0]*$factor;
$newy=$ancho[1]*$factor
$quality=80

fun_resizejpg($imgsrc,$imgnew,$newx,$newy,$quality);

              
}
?>