Ver Mensaje Individual
  #1 (permalink)  
Antiguo 12/04/2012, 13:39
arquidea
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 15 años
Puntos: 5
Error al procesar imágenes con php

Hola a todos,

Arrastro un problema desde hace tiempo con las imágenes que recojo de un formulario y guardo en una carpeta.

El error es el siguiente:

Código PHP:
[11-Apr-2012 19:22:59PHP Fatal error:  Out of memory (allocated 117702656) (tried to allocate 2848 bytesin ... on line 437 
La única solución a este problema que he visto por todas partes es la siguiente:

Instalar al principio del script ini_set('memory_limit','16M');
Pero este no es mi caso, en primer lugar porque lo he intentado y siempre sigue dando el mismo error pero con mayores números y en segundo lugar porque mi servidor ya está configurado para soportar 264M

Así que no me queda más opción que recurrir a vosotros para ver si podéis ayudarme.

Dejo el código actual que estoy utilizando:

Código PHP:

<?php

if($_FILES['file']['name']!="") {

// Donde guardamos la imagen
$carpeta '';

$tamano $_FILES["file"]['size'];         
$tipo $_FILES["file"]['type'];            
$archivo $_FILES["file"]['name'];              

$Temporal_Archivo1 $_FILES["file"]['tmp_name'];

$imagen $nuevoNombre1
   
$destino1 $carpeta.$imagen;

move_uploaded_file($Temporal_Archivo1$destino1);
            
    
$Origen1 imagecreatefromjpeg($destino1);      
        
    
$ancho ImagesX($Origen1);
    
$alto ImagesY($Origen1);
    if(
$ancho $alto){
        
$t_ancho 350;
        
$t_alto $t_ancho $alto $ancho;
    } else {
        
$t_alto 263;
        
$t_ancho $t_alto $ancho $alto;
    }
    
    
$Nueva_Imagen imagecreatetruecolor($t_ancho$t_alto);
    
imagecopyresampled($Nueva_Imagen$Origen10000$t_ancho$t_alto$ancho$alto);      

imagejpeg($Nueva_Imagen$destino180); 

} else {
    
$nuevoNombre1 "sin-imagen.jpg"

}

?>
Y así hasta 4 imágenes con el código repetido.

Cuando la imágen es más grande de lo habitual, alrededor de los 2.5M el problema siempre se produce a la misma altura: imagecreatefromjpeg($destino1);


Gracias de antemano!