php - reports - Advertencia: imagejpeg()[función: imagejpeg]: gd-jpeg: la biblioteca JPEG informa de un error irrecuperable
imagepng quality php (5)
En PHP7, imagecreatefromjpeg
comenzó a lanzar errores fatales cuando intentas abrir un archivo no válido, que incluso el signo @
no puede detectar.
Use lo siguiente en su lugar:
$im = imagecreatefromstring(file_get_contents($filename));
if ($im !== false) { ... }
Tengo la instalación de wordpress en mi carpeta raíz,
hasta ayer estaba funcionando bien, pero hoy da el siguiente error, supongo que generando 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?
por favor, ayúdame
El siguiente código está en la línea 459
if ( !imagejpeg( $newimage, $destfilename, apply_filters( ''jpeg_quality'', $jpeg_quality, ''image_resize'' ) ) )
Probablemente intentaste crear una imagen desde jpeg
que no es jpeg
.
Recibí el mismo error cuando estaba probando un script en miniatura en PHP . Luego encontré que el encabezado de mi archivo de entrada era png
aunque su extensión era .jpg
.
Entonces, edité mi script para que si hay un error al crear una imagen desde jpeg
, intente crearla desde png
(o gif
si ocurre otro error) .
Tengo el mismo error. Pero ahora estoy resuelto el mismo problema.
La respuesta es: estamos subiendo png y se convierte a jpg.
Por favor verifique con jpg que funciona. Y necesitamos convertir png a jpg para que otras funciones estén disponibles, por favor verifique lo 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);
Tienes que usar una función para determinar correctamente el tipo de imagen mime. Una imagen png que tenga extensión jpg conducirá a este error.
Para evitar este error, debe obtener el tipo de imagen mimo correcto .
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;
}
1) Comprobar el espacio en disco.
Su sistema debe tener suficiente espacio en disco
2) Compruebe el límite de memoria
Pon más memoria en tu php:
ini_set("memory_limit","256M");
3) Verifique el post_max_size y upload_max_filesize
Establecer más en su archivo htaccess:
php_value post_max_size 16M
php_value upload_max_filesize 6M
4) poner @ delante de la función
@imagejpeg(..............);
Punto 1) trabajó para mí.