Доработка Image Effects

Reading time: 2 minutes.

15 August 2016

Drupal 8.0 был выпущен почти год назад. За это время на новой платформе мы создали 3 сайта.

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

Чаще всего на практике нам не хватало дополнительного функционала для модуля Эффекты. Image Effects - это продолжение модуля Imagecache Actions в Drupal 8. Разработчики модуля перенесли большую часть функций из Imagecache Actions в Image Effects, но некоторые все еще отсутствуют в доступе, например, чересстрочный / прогрессивный эффект. (Interlace / Progressive).

non-perspective

Эффекты изображения: чересстрочная / прогрессивная

Мы считаем, что чересстрочную развертку нужно применять к изображениям на большинстве сайтов. Пользователю не нужно ждать, пока изображение полностью загрузится, чтобы понять, что на нём находится:

interlace
В первую очередь это важно для больших баннеров, меняющих свою высоту и положение полосы прокрутки на странице. Также этот эффект хорошо смотрится на слайдерах и каруселях. Мы не стали дожидаться появления этого эффекта в модуле Image Effects и попытались добавить его самостоятельно.

Изначально мы создали отдельный модуль для эффекта чересстрочной / прогрессивной развертки, но так как этот эффект применим на многих сайтах, мы решили добавить его в общий модуль Image Effects. Мы создали патч и загрузили его на drupal.org

https://www.drupal.org/node/2751175

Эффект работал нормально, но требовался тест-драйв общего функционала и с этим возникли проблемы. Эффекты работают с двумя разными инструментами GD2 и Imagemagick. Но Drupal.org CI использует для тестирования только GD2. Наше тестирование работы в Imagemagick:

identify -verbose

Возникла необходимость в доработке. Переписать тестовую задачу нам помог элементарный PHP-код.После успешных апгрейдов, патч был успешно применен к модулю Image Effects 8.x-1.x.Отныне он доступен к общему использованию,, начиная с версии Image Effects 8.x-1.0-alpha3, или в dev-версии модуля 8.x-1.x-dev.

Графический эффект: перспектива.

Перспектива - это еще один эффект, который отсутствует в Imagecache Actions и Image effect. Выглядит он так:
До:
non-perspective

После:
perspective

Эффект перспективы дает массу вариантов настроек. Его можно использовать для создания симметричной и асимметричной перспективы. Также вы можете выбрать шаблонный вариант направления и искажения для изображения.

Наша работа над патчем для Image Effects:

https://www.drupal.org/node/2762627

и для Imagecache Actions:

https://www.drupal.org/node/2760121

Мы провели несколько тестов, чтобы убедиться, что патч работает корректно. Эффект перспективы скоро станет доступен в модулях Image Effects и Imagecache Actions.

Drupal 8 увеличивает ваши возможности за счет новых модулей, добавления новых функций и исправления недоработок. Принимая участие в разработке, вы ускоряете и упрощаете разработку сайтов на Drupal 8.