Предупреждение: 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' ) ) )
 swapnesh16 мая 2012 г., 06:21
Включен ли GD на вашем сайте / хосте? Попробуйте добавить следующее в ваш файл .htaccess: AddType x-mapp-php5 .php AddHandler x-mapp-php5 .php
 mack16 мая 2012 г., 06:22
до вчерашнего дня он работал нормально, у меня есть доступ cpanel, как я могу проверить, включен ли GD или нет?
 mack16 мая 2012 г., 06:42
Я сослал вам ссылку в формате PDF, и на моем сервере включен GD
 zerkms16 мая 2012 г., 06:12
Как нам узнать, что находится на линии 459?
 swapnesh16 мая 2012 г., 06:24
просто запустите & lt;? php phpinfo (); ? & GT; файл и проверьте, включена ли библиотека GD или нет, если нет, измените настройки в php.ini или используйте метод ini_set (). проверьте эту ссылку для получения дополнительной информации о GDassets.webassist.com/how-tos/gd_library_ht.pdf

Ответы на вопрос(5)


Ответ: мы загружаем 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);
 05 янв. 2017 г., 07:24
Хорошая работа @ shashik493 .. Это мне очень помогает .. спасибо большое
Решение Вопроса

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) работал для меня.

 14 июн. 2013 г., 13:31
Что значит @ перед ?!
 26 июл. 2013 г., 19:29
@ YeppThat & APOS; SME@ это избегать предупреждающих сообщений
 31 мар. 2018 г., 06:27
Если это неисправимая ошибка и вы находитесь в цикле, он прервет цикл. Вы должны справиться с ошибкой.
 23 окт. 2014 г., 15:54
Не подавляйте предупреждения. Они там по причине. Обращайся с ними!

jpeg это неjpeg.

Я получил ту же ошибку, когда тестировал миниатюрный скрипт вPHP. Then I found that the header of my input file was png хотя его расширение было.jpg.

Итак, я отредактировал свой скрипт так, чтобы в случае возникновения ошибки при создании изображения изjpeg, он пытается создать его изpng (or gif if another error occurs).

 10 мар. 2014 г., 20:28
Это реальный ответ
 04 нояб. 2015 г., 10:25
Лучше использовать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;
}

imagecreatefromjpeg начал выдавать фатальные ошибки при попытке открыть неверный файл, который даже@ Знак не может поймать.

Вместо этого используйте следующее:

$im = imagecreatefromstring(file_get_contents($filename));
if ($im !== false) { ... }

Ваш ответ на вопрос