За последние 24 часа нас посетил 9751 программист и 865 роботов. Сейчас ищут 339 программистов ...

imagecreatefromwebp открывает не все webp изображения

Тема в разделе "Обработка изображений средствами PHP", создана пользователем Snake22, 11 окт 2019.

  1. Snake22

    Snake22 Активный пользователь

    С нами с:
    12 апр 2013
    Сообщения:
    6
    Симпатии:
    0
    Здравствуйте. Суть проблемы следующая. Есть два сервера, на одном все вебп-изобржения обрабатываются нормально. На втором нет, возможно из-за различий версий библиотек.

    Собственно вот. Эта строчка кода с некоторыми webp-изображениями выдаёт ошибку
    Код (Text):
    1. $im_webp = imagecreatefromwebp($webp_file);
    Warning: imagecreatefromwebp(): WebP decode: fail to decode input data
    Warning: imagecreatefromwebp(): 'test.webp' is not a valid WEBP file in...

    При этом есть вебп файлы которые открываются без проблем.
    Есть ещё второй сервак, на нём эти же файлы открываются нормально без ошибки.

    И кстати, метод getimagesize корректно считывает данные об изображении:
    Код (Text):
    1. array(6) { [0]=> int(512) [1]=> int(276) [2]=> int(18) [3]=> string(24) "width="512" height="276"" ["bits"]=> int(8) ["mime"]=> string(10) "image/webp" }
    Подскажите, в какую сторону копать?

    Сразу для полноты картины прикладываю вебп файлы, вот первый, который не работает на проблемном серваке:
    https://i4.imageban.ru/out/2019/10/11/828ce428048c4d794d690c29e601b9e0.webp

    второй, работает нормально на обоих серверах
    https://i1.imageban.ru/out/2019/10/11/701ee9d67dc79b2656ace87ad848a341.webp


    Конфигурация сервака на котором не открываются:
    PHP Version 7.2.23-1+ubuntu16.04.1+deb.sury.org+1
    Apache/2.4.18 (Ubuntu)
    WebP Support enabled
    imagick module version 3.4.4
    imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel
    Imagick compiled with ImageMagick version ImageMagick 6.8.9-9 Q16 x86_64 2019-06-15
    Imagick using ImageMagick library version ImageMagick 6.8.9-9 Q16 x86_64 2017-07-31


    Конфигурация сервака на котором всё работает:
    PHP Version 7.2.6
    Apache/2.4.6 (CentOS) PHP/7.2.6
    WebP Support enabled
    imagick module version 3.4.3
    imagick classes Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator
    Imagick compiled with ImageMagick version ImageMagick 6.7.8-9 2016-06-16 Q16
    Imagick using ImageMagick library version ImageMagick 6.7.8-9 2016-06-16 Q16
     
  2. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.494
    Симпатии:
    1.261
    Адрес:
    Лень
    https://stackoverflow.com/questions...romwebp-webp-decode-fail-to-decode-input-data
    RAUSHAN KUMAR you're right, this is the actual solution: $data = file_get_contents ($filename); $image = imagecreatefromwebp ('data://image/webp;base64,' . base64_encode ($data)); this works , whereas just supplying the filename directly fails
     
  3. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.420
    Симпатии:
    657
    Адрес:
    Татарстан
    а обновить библиотеки и привести в соответствие к той конфигурации - на которой все работает - никак?
     
  4. Snake22

    Snake22 Активный пользователь

    С нами с:
    12 апр 2013
    Сообщения:
    6
    Симпатии:
    0
    @MouseZver этот способ не помог.
    @ADSoft вот сейчас обновил пхп до версии PHP Version 7.3.10-1+ubuntu16.04.1+deb.sury.org+1
    не помогло. А библиотека GD library так и осталась версии Version 2.1.1. не обновилась почему то до 2.2.5.
    И в репозиторих нет версии свежее, а на centos есть. Может быть из-за нее как раз проблема?
     
  5. Snake22

    Snake22 Активный пользователь

    С нами с:
    12 апр 2013
    Сообщения:
    6
    Симпатии:
    0
    получилось обновить gd, всё стало работать. благодарю за советы.