Искал по работе crop модуль, который позволит редактору сайта выполнять обрезку картинки в админке при загрузке изображения в форму публикации.
На Drupal.org есть обзор подобных модулей:
https://www.drupal.org/node/1179172.
Дополнительными требованиями было:
- Использование модуля без пересоздания поля с картинок (иначе придется перезагружать картинки всех публикаций, где создано новое поле) — т.е. плагин должен добавить виджет для imagefield, а не новый тип поля.
- Версия Drupal — 7.
- Поддержка S3FS.
Большинство модулей реализует «обрезку» через стили, т.е. нужно добавлять или использовать специальные стили изображений, чтобы получить cropped image. Не совсем то что нужно, т.к. требуется менять настройки полей, добавлять стилей или изменять стили изображений, а иногда (если используется код связанный с обработкой изображения) и модификация кода программы.
В части первых двух требований, а также из-за общей простоты модуля, я остановился на imagefield_crop 7x-1.1.
Модуль работает следующим образом. Вы указываете на оригинальном изображении область отсечения. Полученная картинка сохраняется вместо оригинальной. А для оригинала создаётся копия, чтобы можно было впоследствии поменять параметры crop.
Но так как модуль почти 5 лет не обновляется, нет поддержки S3, а также есть кое какие лишние «примочки» и баги, то я написал патч, который превращает модуль в то, что надо.
Скачать можно и здесь:
https://www.drupal.org/project/imagefield_crop/issues/2928174.
Патч выполняет следующие правки:
- Убирает превью результата обрезки. Т.к. штука лишняя и выполнена довольно криво. К примеру, превью может отображать результат обрезки с искажением пропорций.
- Добавляет совместимость с S3FS.
- Исправляет мелкие баги, которые не влияли на функционал, но приводили к появлению предупреждений от php.