Foros del Web » Programando para Internet » PHP »

Redimensionar la imagen

Estas en el tema de Redimensionar la imagen en el foro de PHP en Foros del Web. Tengo el siguiente script para reducir una fotografía a un ancho de 300 px. Pero solamente me funciona para las fotografías pequeñas, cuando supera 1 ...
  #1 (permalink)  
Antiguo 07/03/2008, 03:34
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Redimensionar la imagen

Tengo el siguiente script para reducir una fotografía a un ancho de 300 px.

Pero solamente me funciona para las fotografías pequeñas, cuando supera 1 Mb no me hace nada

Me tiene desesperado esto ya.

Muchas gracias.

Código PHP:

$nombre_foto  
$_FILES["archivo"]["name"];

$anchura=300;   //valor predeterminado de la anchura
$datos getimagesize($nombre_foto);
$ratio = ($datos[0] / $anchura);
$altura = ($datos[1] / $ratio);

$fuente = @imagecreatefromJpeg($nombre_foto);
$imgAncho $datos[0];
$imgAlto $datos[1];
$alto $imgAlto*$anchura/$imgAncho;
$imagen ImageCreateTrueColor($anchura,$altura);
imagecopyresampled($imagen,$fuente,0,0,0,0,$anchura,$altura,$imgAncho,$imgAlto);
imageJpeg($imagen,$nombre_foto,80);
 
ImageDestroy($fuente); 

Última edición por gogupe; 07/03/2008 a las 03:58 Razón: Error en el titulo
  #2 (permalink)  
Antiguo 07/03/2008, 03:48
 
Fecha de Ingreso: octubre-2004
Mensajes: 2.627
Antigüedad: 19 años, 6 meses
Puntos: 48
Re: Hola

Mira en tu hosting el limite de tamaño para el upload de ficheros. Lo normal es que sea al menos de 2 megas, pero podria ser perfectamente que este configurado a 1 mega.
  #3 (permalink)  
Antiguo 07/03/2008, 03:59
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Re: Redimensionar la imagen

Gracias por contestar Darkj, pero lo tengo configurado a 16 Mb.
  #4 (permalink)  
Antiguo 07/03/2008, 05:24
Avatar de farra  
Fecha de Ingreso: marzo-2008
Ubicación: Aqui estoy
Mensajes: 574
Antigüedad: 16 años, 1 mes
Puntos: 20
Re: Redimensionar la imagen

Cita:
Iniciado por gogupe Ver Mensaje
Gracias por contestar Darkj, pero lo tengo configurado a 16 Mb.
proba con esta funcion:


Código PHP:
function create_tb($img_o,$w_tb,$h_tb,$bg_color){
 
$img_return=imagecreatetruecolor($w_tb,$h_tb);
 if(isset(
$bg_color) && $bg_color != ""){
   
$colorimagecolorallocate($img_returnhexdec(substr($bg_color,0,2)), hexdec(substr($bg_color,2,2)), hexdec(substr($bg_color,4,2))); 
 }else{
  
$colorimagecolorallocate($img_return255255255);
 }
 
    
imagefilledrectangle($img_return00$w_tb$h_tb$color);
 
$wo=imagesx($img_o);
 
$ho=imagesy($img_o);
 
 if(
$wo >= $ho){ 
  
  
$wtb_copy=$w_tb;
  
$htb_copy=($ho*(($w_tb*100)/$wo))/100;
  
$xtb_copy=0;
  
$ytb_copy=($h_tb/2)-($htb_copy/2);
 }elseif(
$ho $wo){
  
  
$wtb_copy=($wo*(($h_tb*100)/$ho))/100;
  
$htb_copy=$h_tb
  
$xtb_copy=($w_tb/2)-($wtb_copy/2);
  
$ytb_copy=0;
 }
 
imagecopyresampled($img_return$img_o$xtb_copy$ytb_copy00$wtb_copy$htb_copy$wo$ho);
 return 
$img_return;



llamando a la funcion y validando.... --> aca le das los parametros:

Código PHP:

//// inicio de validacion  ///

$valido true
$file=$_FILES["file"];
    if(
$file["type"]=="image/pjpeg" || $file["type"]=="image/jpg" || $file["type"]=="image/jpeg"){ 
        if(
$file["size"]>=5120000){
              
$valido false;
            echo 
"tamaño incorrecto";
         }
    }else{
        
$valido false;
        echo 
"tipo incorrecto";
    }

//// fin de validacion  ///

//// inicio llamando a la funcion  ///
    
    
if($valido){
     
$imgagencapt=imagecreatefromjpeg($file["tmp_name"]);

     
$imggrande=create_tb($imgagencapt,150,150,"CCE6FF");
     
$imgChica=create_tb($imgagencapt,60,60,"CCE6FF");

        
imagejpeg($imggrande,"carpeta/imagen_".($ID).".jpg",60);
        
imagejpeg($imgChica,"carpeta/imagen_".($ID).".jpg",60);

    
    }
}
//// fin de llamando a la funcion  /// 
incluso te deja crear 2 imagenes de la misma foto.. una chica 60x60 px y otra grande de 150 x150 px y rellena los espacios vacios con el color de fondo de tu pagina por ejemplo ahora ta rellenando con: CCE6FF


PD: tenes que tener habilitada la libreria GD
  #5 (permalink)  
Antiguo 07/03/2008, 07:46
Avatar de gogupe  
Fecha de Ingreso: octubre-2006
Ubicación: Mallorca
Mensajes: 897
Antigüedad: 17 años, 6 meses
Puntos: 32
Re: Redimensionar la imagen

Muchas gracias Farra, lo probaré a ver que tal.

ANtes de nada, como se habilita la libreria GD. ??

Muchisimas gracias.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 10:41.