Задать вопрос
@nata32

Как исправить Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library?

Конвертирую в цикле картинки из jpg и png в webp, периодически даёт ошибку:

Warning: imagecreatefromjpeg(): gd-jpeg: JPEG library reports unrecoverable error: Not a JPEG file: starts with 0x52 0x49

Ошибка в этой строке:

$img = imageCreateFromJpeg($save_to_path);

Насколько я понимаю, картинка должна быть jpg, а она непонятно что.
Прописала проверки:

if (pathinfo($image, PATHINFO_EXTENSION)=='jpg') {
                    if ($file_type=='image/jpeg'||$file_type=='image/pjpeg') {
                                       $info = pathinfo($save_to_path);
                                       $img = imageCreateFromJpeg($save_to_path);
                                       imageWebp($img, $info['dirname'] . '/' . $info['filename'] . '.' . 'webp', 100);

Но всё равно лезет эта ошибка.
Что ещё можно проверить на соответствие, чтобы если не проходит, то картинка игнорируется?
  • Вопрос задан
  • 221 просмотр
Подписаться 1 Простой 9 комментариев
Помогут разобраться в теме Все курсы
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
  • Stepik
    PHP (pro)
    2 недели
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$info = getimagesize($image);
if ($info['mime'] === 'image/jpeg') {
    ...
}

А сигнатура 0x52 0x49 соответствует формату webp.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы