2012-05-16 11 views
13

tengo instalación de WordPress en mi carpeta raíz,Advertencia: imagejpeg() [Función: imagejpeg]: GD-JPEG: JPEG informes de la biblioteca error irrecuperable

hasta ayer estaba trabajando bien, pero hoy se da tras error para Supongo que generar imágenes en miniatura,

Warning: imagejpeg() [function:imagejpeg]: gd-jpeg: JPEG library reports unrecoverable error: in public_html/wp-includes/media.php on line 459 

¿alguien tiene alguna idea con respecto a esta advertencia?

favor me ayude a

siguiente código está en la línea 459

if (!imagejpeg($newimage, $destfilename, apply_filters('jpeg_quality', $jpeg_quality, 'image_resize'))) 
+2

¿Cómo nos apoyamos para saber qué hay en la línea 459? – zerkms

+0

¿Está habilitado GD en su sitio/host ?, intente agregar lo siguiente a su archivo .htaccess: AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php – swapnesh

+0

hasta ayer funcionaba bien, lo hago tener acceso al panel de control, ¿cómo puedo verificar si GD está habilitado o no? – mack

Respuesta

13

1) Compruebe el espacio en disco

El sistema debe tener suficiente espacio en disco

2) Compruebe el límite de memoria

conjunto más memoria en su php:

ini_set("memory_limit","256M"); 

3) Controlar el upload_max_filesize y

conjunto más en su archivo .htaccess:

php_value post_max_size 16M 
php_value upload_max_filesize 6M 

4) put @ en frente de la función

@imagejpeg(..............); 

Punto 1) funcionó para mí.

+0

¿Qué significa el @ en frente de ?! –

+0

@ YeppThat'sMe '@' es para evitar los mensajes de advertencia –

+12

No suprima las advertencias. Ellos están ahí por una razón. Manejarlos! – rjdown

30

Probablemente haya intentado crear una imagen de jpeg que no sea jpeg.

Recibí el mismo error cuando estaba probando una secuencia de comandos en miniatura en PHP. Luego encontré que el encabezado de mi archivo de entrada era png aunque su extensión era .jpg.

Por lo tanto, he editado mi script de modo que si hay un error en la creación de una imagen de jpeg, se trata de crear desde png(o gif si se produce otro error).

+5

Esta es la verdadera respuesta – samayo

+6

Es mejor usar la función 'exif_imagetype' en lugar de la fuerza bruta – Oleg

3

Tengo el mismo error. Pero ahora estoy resuelto el mismo problema.

La respuesta es: Estamos cargando png y se convierte en jpg.
Por favor, compruebe con jpg que funciona. Y tenemos que convertir png a jpg para que otras funciones estén disponibles, por favor revise el mismo.

El siguiente código será útil para convertir imágenes usando GD Library.

//variable declare or parameter use 
$originalImage ="1.jpg"; 
$quality=100; // for jpg good quality 
$outputImage; //for source file save. 


// jpg, png, gif or bmp? 
    $exploded = explode('.',$originalImage); 
    $ext = $exploded[count($exploded) - 1]; 

    if (preg_match('/jpg|jpeg/i',$ext)) 
     $imageTmp=imagecreatefromjpeg($originalImage); 
    else if (preg_match('/png/i',$ext)) 
     $imageTmp=imagecreatefrompng($originalImage); 
    else if (preg_match('/gif/i',$ext)) 
     $imageTmp=imagecreatefromgif($originalImage); 
    else if (preg_match('/bmp/i',$ext)) 
     $imageTmp=imagecreatefrombmp($originalImage); 
    else 
     return 0; 

    // quality is a value from 0 (worst) to 100 (best) 
    imagejpeg($imageTmp, $outputImage, $quality); 
    imagedestroy($imageTmp); 
+0

Esta función crear el formato de imagen final es jpg – shashik493

+0

Buen trabajo @ shashik493 ..Me ayuda mucho ... gracias tanto –

1

usted tiene que utilizar una función para determinar correctamente el tipo MIME de la imagen.Una imagen png que tenga extensión jpg dará lugar a este error.

Para evitar este error, debe obtener correct mime type de la imagen.

function getImage($path) { 
switch(mime_content_type($path)) { 
    case 'image/png': 
    $img = imagecreatefrompng($path); 
    break; 
    case 'image/gif': 
    $img = imagecreatefromgif($path); 
    break; 
    case 'image/jpeg': 
    $img = imagecreatefromjpeg($path); 
    break; 
    case 'image/bmp': 
    $img = imagecreatefrombmp($path); 
    break; 
    default: 
    $img = null; 
    } 
    return $img; 
} 
Cuestiones relacionadas