Обрезка изображений строго по размеру (обновлено) 2.X

591
Меня давно смущало, что в компоненте "Загрузка изображений" нельзя задать строгих размеров для загружаемых фото, если только речь не идет о квадратных пресетах. Задаваемые размеры определяют максимальный размер. При загрузке изображения с пропорциями отличными от заданных, изображение не обрезается, а просто уменьшается. Соответственно пресеты могут отличаться друг от друга и это создает не желательный результат.

И вот у меня дошли таки руки до этого вопроса и внесенные мною изменения коснулись только одного файла: /system/libs/files.helper.php
Его и следует заменить загрузив содержимое архива в корень сайта.

Скачать файл

В результате пресеты где отмечена галочка "Квадратный", будут не квадратными, а строго такими, какие заданы размеры. Например: 500х300.
Компонент главной страницы - подключение шаблона
Комментарии (5)
Dost 5 августа 2017 в 15:12 0
small user social cms
Спасибо!
vikont 5 августа 2017 в 23:36 0
small user social cms
Есть вопросы:
1. Как именно будет резаться картинка? По центру или как то иначе?
2. Что будет происходить с картинками, которые изначально меньше обрезаемого пресета? Будет изменен размер, а потом обрезка?
3. Как будет резаться вертикальная картинка? Например размером 400х600, при пресете 500х300?
Иван Шкута 5 августа 2017 в 23:58 0
small user social cms
1. Вертикальные сверху, горизонтальные посередине. Если захотите, чтобы и вертикальные обрезались по центру, раскомментируйте строки 525-527.
2. Да. Будет изменен размер и после обрезка.
3. Смотрите пункт 1. Будет вырезана соответствующая часть сверху на всю ширину.
Pocus 13 августа 2017 в 15:19 0
small user social cms
А можно здесь же указать что-то вроде define('LANG_IMAGES_PRESET_SQUARE', 'Точно в размер')?
Иван Шкута 16 августа 2017 в 21:25 0
small user social cms
Да, можно. Просто я постарался затронуть наименьшее количество системных файлов... Это если не выявится никаких недочетов и решение войдет в релиз zst