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

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

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

Скачать файл

В результате пресеты где отмечена галочка "Квадратный", будут не квадратными, а строго такими, какие заданы размеры. Например: 500х300.
0
Dost Dost 7 лет назад #
Спасибо!
0
vikont vikont 7 лет назад #
Есть вопросы:
1. Как именно будет резаться картинка? По центру или как то иначе?
2. Что будет происходить с картинками, которые изначально меньше обрезаемого пресета? Будет изменен размер, а потом обрезка?
3. Как будет резаться вертикальная картинка? Например размером 400х600, при пресете 500х300?
+1
Иван Шкута Иван Шкута 7 лет назад #
1. Вертикальные сверху, горизонтальные посередине. Если захотите, чтобы и вертикальные обрезались по центру, раскомментируйте строки 525-527.
2. Да. Будет изменен размер и после обрезка.
3. Смотрите пункт 1. Будет вырезана соответствующая часть сверху на всю ширину.
0
Pocus Pocus 7 лет назад #
А можно здесь же указать что-то вроде define('LANG_IMAGES_PRESET_SQUARE', 'Точно в размер')?
0
Иван Шкута Иван Шкута 7 лет назад #
Да, можно. Просто я постарался затронуть наименьшее количество системных файлов... Это если не выявится никаких недочетов и решение войдет в релиз zst
0
kuzsa kuzsa 6 лет назад #
Очень правильное решение только пока в релиз к сожалению не попало
0
Def Def 6 лет назад #
а какие строки изменены?)

Еще от автора

Доступность всех групп при редактировании записи
Сейчас администратор при редактировании чьей-то записи не может указать группу в которой не состоит сам.
Редирект менеджер обновлен
Наконец-то дошли руки до редирект-менеджера, вернее до его обновления. Новое: Поддержка 2.10.0+ Маски для исходного URL Переменные для целевого URL
Поле "Точка на карте"
Это поле позволяет указать точку на карте (Яндекс.Карты) и вывести карту с этой точкой в записи / профиле / группе.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.