Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/07/2008, 11:34
Avatar de alexbariv
alexbariv
 
Fecha de Ingreso: septiembre-2003
Ubicación: Mérida, Venezuela
Mensajes: 766
Antigüedad: 20 años, 7 meses
Puntos: 0
Pregunta Subiendo imágenes y redimencionando las mismas - todo bien pero tengo un problemita

Hola a todos.

Resulta que en un sistema de manejo de contenidos que realicé para X portal, se requería que el usuario pudiera subir una imagen y en base a esta deberían crearse 3 imágenes adicionales, una para miniatura, una de tamaño medio y una grande.

Para esto hice este código PHP que funciono bien por un tiempo:

Código PHP:

if( is_uploaded_file($_FILES['afiche']['tmp_name'])  ) {

    
// Comienza la generación de la nueva imágen
    
$rand        rand(1,100000);
    
$extension pathinfo($_FILES['afiche']['name']);
    
$extension $extension[extension];
    
$mimes     explode(","$extension);
    
$nombre      "{$rand}.$extension";
    
$afiche      $nombre;


    
// Creando Miniatura ***
    // Obtener Archivo
    
$src       imagecreatefromjpeg($_FILES['afiche']['tmp_name']);
    
// Obtener Resolución
    
list($width,$height) = getimagesize($_FILES['afiche']['tmp_name']);
    
// Nueva Resolución a a aplicar
    
$newwidth  150;
    
$newheight = ($height/$width)*150;
    
// Crear nueva imágen
    
$tmp       imagecreatetruecolor($newwidth,$newheight);
    
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    
$filename  "{$uploaddir}/thumb/{$nombre}";
    
imagejpeg($tmp,$filename,100);
    
// Destruir imágenes creadas
    
imagedestroy($src);
    
imagedestroy($tmp);


    
// Ajustando imágen mediana ***
    // Obtener Archivo
    
$src       imagecreatefromjpeg($_FILES['afiche']['tmp_name']);
    
// Obtener Resolución
    
list($width,$height) = getimagesize($_FILES['afiche']['tmp_name']);
    
// Nueva Resolución a a aplicar
    
$newwidth  400;
    
$newheight = ($height/$width)*400;
    
// Crear nueva imágen
    
$tmp       imagecreatetruecolor($newwidth,$newheight);
    
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    
$filename  "{$uploaddir}/med/{$nombre}";
    
imagejpeg($tmp,$filename,100);
    
// Destruir imágenes creadas
    
imagedestroy($src);
    
imagedestroy($tmp);


    
// Ajustando imágen grande ***
    // Obtener Archivo
    
$src       imagecreatefromjpeg($_FILES['afiche']['tmp_name']);
    
// Obtener Resolución
    
list($width,$height) = getimagesize($_FILES['afiche']['tmp_name']);
    
// Nueva Resolución a a aplicar
    
$newwidth  700;
    
$newheight = ($height/$width)*700;
    
// Crear nueva imágen
    
$tmp       imagecreatetruecolor($newwidth,$newheight);                /**<<**/
    
imagecopyresampled($tmp,$src,0,0,0,0,$newwidth,$newheight,$width,$height);
    
$filename  "{$uploaddir}/full/{$nombre}";
    
imagejpeg($tmp,$filename,100);
    
// Destruir imágenes creadas
    
imagedestroy($src);
    
imagedestroy($tmp);

Recientemente ha comenzado a aparecer este error:


Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 2800 bytes) in /home/XXX/public_html/cms/eventos_mod.php on line 150


Marqué la línea 150 en el código anterior con "/**<<**/".

Quisiera saber que me sugieren para mejorar el rendimiento de este script o cómo puedo evitar este error. Realmente no tengo ni la más mínima idea de porque pasa esto, ya que de forma local funciona bien, y este error comenzó a aparecer recientemente.

Gracias de antemano y un saludo.
__________________
"Piensa como una persona de acción y actúa como una persona que piensa."