Вопрос по php – Предупреждение: imagejpeg () [функция: imagejpeg]: gd-jpeg: библиотека JPEG сообщает о неисправимой ошибке
У меня есть установка WordPress в моей корневой папке,
до вчерашнего дня он работал нормально, но сегодня он дает следующую ошибку, я думаю, генерация миниатюр изображений
Warning: imagejpeg() [function:imagejpeg]: gd-jpeg: JPEG library reports unrecoverable error: in public_html/wp-includes/media.php on line 459
У кого-нибудь есть идеи относительно этого предупреждения?
пожалуйста, помогите мне
следующий код в строке 459
if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
Ответ: мы загружаем PNG, и он конвертируется в JPG.
Пожалуйста, проверьте с JPG, он работает. И нам нужно конвертировать PNG в JPG, чтобы другие функции были доступны, пожалуйста, проверьте на то же самое.
Ниже код будет полезен для преобразования изображений с использованием библиотеки GD.
//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);
1) Check the space in disk
Ваша система должна иметь достаточно места на диске
2) Check the memory limit
Установите больше памяти в вашем php:
ini_set("memory_limit","256M");
3) Check the post_max_size and upload_max_filesize
Установите больше в своем файле htaccess:
php_value post_max_size 16M
php_value upload_max_filesize 6M
4) put @ in front of the function
@imagejpeg(..............);
Пункт 1) работал для меня.
@
это избегать предупреждающих сообщений
jpeg
это неjpeg
.
Я получил ту же ошибку, когда тестировал миниатюрный скрипт вPHP.
Then I found that the header of my input file was png
хотя его расширение было.jpg
.
Итак, я отредактировал свой скрипт так, чтобы в случае возникновения ошибки при создании изображения изjpeg
, он пытается создать его изpng
(or gif
if another error occurs).
exif_imagetype
функция вместо грубой силы
чтобы правильно определить тип изображения MIME. Изображение png с расширением jpg приведет к этой ошибке.
Чтобы избежать этой ошибки, вы должны получитьправильный тип пантомимы изображения.
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;
}