Foros del Web » Programando para Internet » PHP »

Error al procesar imágenes con php

Estas en el tema de Error al procesar imágenes con php en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 12/04/2012, 13:39
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 17 años, 5 meses
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:59] PHP Fatal error:  Out of memory (allocated 117702656) (tried to allocate 2848 bytes) in ... 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, $Origen1, 0, 0, 0, 0, $t_ancho, $t_alto, $ancho, $alto);      

imagejpeg($Nueva_Imagen, $destino1, 80); 

} 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!
  #2 (permalink)  
Antiguo 12/04/2012, 14:48
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 18 años, 4 meses
Puntos: 528
Respuesta: Error al procesar imágenes con php

Tu problema no se puede resolver con gd, si gd depende de la memoria de php y no la puedes incrementar. Quizá si puedes hacer uso de otra librería como imagemagik lo consigas.
  #3 (permalink)  
Antiguo 13/04/2012, 02:19
 
Fecha de Ingreso: abril-2009
Mensajes: 233
Antigüedad: 17 años, 5 meses
Puntos: 5
Respuesta: Error al procesar imágenes con php

Y porque no funciona? es normal que falle, es algo que tomo el mundo usa.

Etiquetas: imagecreatefromjpeg, imagenes, memory
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




La zona horaria es GMT -6. Ahora son las 18:26.