 
			
				14/03/2011, 15:20
			
			
			     |  
      |    |    |    Fecha de Ingreso: noviembre-2008  
						Mensajes: 103
					  Antigüedad: 17 años Puntos: 0     |        |  
  |      problema con un upload de foto...        Hola a todos... Tengo un problema al subir fotos y pretender reducir su peso y tamaño.   
Uso un codigo de php q anda de mil maravillas salvo ycuando la imagen pese pese menos de 3mb o tenga un ancho y o alto inferior a 3000 px.   
Si excedo esto saltra el siguiente error:   
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3264 bytes) in C:\xampp\htdocs\info_lh\carga_anuncio.php on line 52   
Pasa en varios servidores q no dejan modificar la memoria en php.ini   
Hay alguna forma de achicar las fotos sea cual sea su tamaño o hay alguina forma de saber el alto el ancho del archivo q trato de subir? se averiguar el peso pero no esto.   
EL codigo q uso para reducir es:   
//funcion reduce fotos   
function redimensionar_imagen($imagen, $nombre_imagen_asociada)     
	 {       
	   //indicamos el directorio donde se van a colgar las imágenes 
       $direc = 'utilidades/fotos_categorias/'; 
	   $directorio = ""; 
       //establecemos los límites de ancho y alto 
       $nuevo_ancho = 600; 
       $nuevo_alto = 600;   
       //Recojo información de la imágen 
       $info_imagen = getimagesize($imagen); 
       $alto = $info_imagen[1]; 
       $ancho = $info_imagen[0]; 
       $tipo_imagen = $info_imagen[2];   
       //Determino las nuevas medidas en función de los límites 
       if($ancho > $nuevo_ancho OR $alto > $nuevo_alto) 
       { 
         if(($alto - $nuevo_alto) > ($ancho - $nuevo_ancho)) 
         { 
           $nuevo_ancho = round($ancho * $nuevo_alto / $alto,0) ;     
         } 
         else 
         { 
           $nuevo_alto = round($alto * $nuevo_ancho / $ancho,0);   
         } 
       } 
       else //si la imagen es más pequeña que los límites la dejo igual. 
       { 
         $nuevo_alto = $alto; 
         $nuevo_ancho = $ancho; 
       }   
       // dependiendo del tipo de imagen tengo que usar diferentes funciones 
       switch ($tipo_imagen) { 
          case 2: //si es jpeg … 
           $imagen_nueva = imagecreatetruecolor($nuevo_ancho, $nuevo_alto); 
           $imagen_vieja = imagecreatefromjpeg($imagen); 
           //cambio de tamaño… 
           imagecopyresampled($imagen_nueva, $imagen_vieja, 0, 0, 0, 0, $nuevo_ancho, $nuevo_alto, $ancho, $alto); 
           if (!imagejpeg($imagen_nueva, $directorio . $nombre_imagen_asociada)) return false; 
         break;     
       } 
       return true; //si todo ha ido bien devuelve true   
     }   
//fin funcion reduce fotos     
desde ya muchas gracias!!!   
Rome           |