Как вы делаете превью изображения, когда нельзя обрезать фото?

Оригинальное изображение - это логотип магазина произвольного размера и ориентации. Необходимо перед сохранением изменить изображение: сделать квадратным, размером 150x150. Нельзя обрезать фото. Стоит учитывать, что исходное изображение может быть большим (1024х768) и маленьким (100х20). Если слишком маленькое - необходимо вписать лого по центру в квадрат 150x150.
Кто реализовывал такую задачу? Подскажите с решением.
  • Вопрос задан
  • 502 просмотра
Решения вопроса 1
27cm
@27cm
TODO: Написать статус
Нельзя превратить 1024х768 в 150x150, не обрезав или не деформировав: растянув по высоте, а затем уменьшив.

Уменьшаем по ширине до 150 и центрируем по высоте. Оставшуюся часть квадрата заливаем белым.

А если изображение - фотография, т. е. фон изначально не белый, тогда будут белые полоски не в тему.

В любом случае, если белые полоски вас устраивают, берёте ImageMagick в руки и вперёд:
1. Получаете высоту и ширину исходного изображения;
2. Если ширина больше высоты, то пропорционально уменьшаете до 150px по ширине, иначе - до 150px по высоте;
3. Накладываете получившееся изображение по центру на изображение белого квадрата 150x150

Но лучше использовать JavaScript вроде fengyuanchen.github.io/cropper и дать пользователю самому выбрать квадратную область изображения. Превьюшки в итоге будут получаться красивыми, правильно спозиционированными и безо всяких белых полосок по краям.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы