Неправильная генерация эскизов изображений

Исходные данные: имеем оптимизированный файл jpeg с величиной одной из сторон 1400px. Размер файла - 64,8Кб.

Генерируем эскизы (фильтр резкости отключен, но и включение не особо влияет). Получаем файл jpeg с величиной одной из сторон 970px. Размер файла - 120Кб.

Шаманство? Нет, всего-лишь работа imagick под "руководством" классов от Вебасист. Это давняя проблема, о которой, уверен, разработчикам известно. Но решать ее почему-то никто не спешит.

Может почитаете на досуге? https://habrahabr.ru/post/261625/

4 ответа

  • 1
    Алексей Webasyst 5 августа 2017 07:50 #
    В PHP ImageMagick интегрирован под именем Imagick. К сожалению, там он ограничен и не умеет выполнять всё то, что я рекомендовал – в частности, настраивать фильтр дискретизации на использование функции thumbnail.

    Предлагаемый модуль работает только на PHP 5.3+

    • +1
      Плебей Плебей 5 августа 2017 08:40 #

      У меня PHP 7.0. Да и вообще редко уже можно встретить сайты, работающие на версиях ниже 5.3.

      Поковырявшись в классах, заметил что используется resize, а не mogrify. Хотя mogrify, судя по тестам из статейки, дает лучшие результаты по качеству и сжатию.

      • +1
        Алексей Алексей Webasyst 5 августа 2017 18:10 #

        То что у вас 7.0 это замечательно. Но требование для фреймворка и основных приложений 5.2. Пока это не изменится то маловероятно что возможно будет использовать модуль.

        • +1
          Плебей Плебей 5 августа 2017 18:27 #

          Ну, может Imagick и ограничен. Но даже в этом случае настолько похабно настроить генерацию картинок - это, согласитесь, тоже неправильно. Мало того, что размер файлов увеличивается в разы, так при этом качество в те же разы падает. И сделать пользователю с этим ничего нельзя.

          Из Ваших же рассуждений следует, что тому же Фотошопу не следует писать новые версии и идти вперед, потому что где-то на земле есть еще два человека с установленным Windows 3.11

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите