Foros del Web » Programando para Internet » PHP »

Fatal error con imagecreatefromjpeg();

Estas en el tema de Fatal error con imagecreatefromjpeg(); en el foro de PHP en Foros del Web. Pues eso, que me sale un fatal error cuando llamo a la funcion imagecreatefromjpeg(); lo que intento, es subir una imagen y redimensionarla, la funcion ...
  #1 (permalink)  
Antiguo 09/08/2008, 08:56
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Fatal error con imagecreatefromjpeg();

Pues eso, que me sale un fatal error cuando llamo a la funcion imagecreatefromjpeg();

lo que intento, es subir una imagen y redimensionarla, la funcion en cuestion es esta:
Código PHP:
function miniatura($nombre_imagen$nombre_miniatura$ancho){
    
$img imagecreatefromjpeg($nombre_imagen);
    
$width imagesx($img);
    
$height imagesy($img);
    
$new_width $ancho;
    
$new_height floor($height*($ancho/$width));
    
$tmp_img imagecreatetruecolor($new_width$new_height);
    
imagecopyresized($tmp_img$img0000$new_width$new_height$width$height);
    
imagejpeg($tmp_img$nombre_miniatura);
    
imagedestroy($tmp_img);

el codigo funciona bien, ya que con algunas imagenes me las redimensiona correctamente, pero con otras, pues me sale el susodicho error.
decir que antes de llamar a la funcion, me aseguro que sea una imagen jpg.
Yo creo que salta por el tamaño de la imagen, pero, tampoco intento subir imagenes excesivamente grandes, rondan los 300kb, pero son grandes en cuanto a tamaño de pixel (1900*1200 maximo, son capturas de pantalla :))

Lo dicho, que no se como solucionar el problemilla, alguna idea?
  #2 (permalink)  
Antiguo 09/08/2008, 09:08
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Fatal error con imagecreatefromjpeg();

Que tal DooBie, no será un problema de memoria? No has probado aumentando el memory_limit en el php.ini? cual es el mensaje completo del error




Saludos.
  #3 (permalink)  
Antiguo 09/08/2008, 09:23
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Fatal error con imagecreatefromjpeg();

Cita:
Iniciado por Carlojas Ver Mensaje
Que tal DooBie, no será un problema de memoria? No has probado aumentando el memory_limit en el php.ini? cual es el mensaje completo del error




Saludos.
Error completo:
Código PHP:
Fatal errorAllowed memory size of 8388608 bytes exhausted (tried to allocate 7680 bytesin /opt/lampp/htdocs/dalaitour/inc/varios.php on line 134 
El problema es de memoria, pero, lo que no entiendo, es por que me deja subir imagenes de casi 1Mb pero algunas de menos de 300kb me sale el error.

He estado probando, y si reduzco la resolucion, me deja subirlas, es decir
prueba1: imagen 256Kb (1900*1200px) ERROR
prueba2: imagen 472Kb (1440*900px) OK
prueba3: imagen 35Kb (1900*1200px) ERROR

con esas tres pruebas, deduzco que es por el tamaño en pixels, no por el tamaño en Kb.

El memory_limit creo que no puedo tocarlo, ya que es un servidor de hosting compartido, lo que no se seguro, si ese parametro puedo cambiarlo en tiempo de ejecucion.

saludos

EDITO: Acabo de cambiar el memory_limit en tiempo de ejecucion, y funciona! :)

Gracias por el apunte!

Última edición por DooBie; 09/08/2008 a las 09:28
  #4 (permalink)  
Antiguo 09/08/2008, 09:39
Avatar de Carlojas  
Fecha de Ingreso: junio-2007
Ubicación: Shikasta
Mensajes: 1.272
Antigüedad: 16 años, 10 meses
Puntos: 49
Respuesta: Fatal error con imagecreatefromjpeg();

Mira estas dos funciones set_time_limit() e ini_set().

PD: Bueno veo que ya lo solucionaste.


Saludos.
  #5 (permalink)  
Antiguo 09/08/2008, 09:50
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Fatal error con imagecreatefromjpeg();

Lo solucione poniendo ini_set('memory_limit', '16M');
lo pongo solo en ese script, para no aumentar el limite en otros que realmente no lo necesito.

Gracias de nuevo :)
  #6 (permalink)  
Antiguo 11/08/2008, 08:50
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Fatal error con imagecreatefromjpeg();

Hola Doobie,

La razón por la que funcionaba en algunos archivos y en otros no, es que JPEG es un formato de imagen comprimido, al tu abrirla con PHP, hay que descomprimirla en RAM, y una imagen de 100kb puede ocupar mas de 100 MB dependiendo de como se haya comprimido.

Saludos.
  #7 (permalink)  
Antiguo 11/08/2008, 12:56
Avatar de DooBie  
Fecha de Ingreso: septiembre-2004
Mensajes: 1.101
Antigüedad: 19 años, 7 meses
Puntos: 71
Respuesta: Fatal error con imagecreatefromjpeg();

Permiteme que haga un apunte GatorV, pero, por diferentes pruebas que hice, siempre me pasaba con imagenes grandes en tamaño de pixels, a priori, imagenes que yo creaba y siempre guardaba con las mismas opciones de compresion/calidad. No se si el tamaño en pixels tendra algo que ver en cuanto a la compresion, pero las pruebas que hice, me indicaron eso.

Evidentemente, es de agradecer tu aporte siempre

saludos!
  #8 (permalink)  
Antiguo 11/08/2008, 13:13
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: Fatal error con imagecreatefromjpeg();

Así es depende mucho del tamaño en pixeles, ya que hay que alocar cierto espacio en RAM para descomprimir la imagen.

Lo puedes verificar por ejemplo en Photoshop, tiene herramientas que te indican el tamaño REAL de la imagen (el famoso formato RAW).

Saludos.
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 09:41.