Перейти к основному содержанию

Маcштабирование изображений до фиксированных размеров с сохранением пропорций

Опубликовано 23.11.2013 Теги: drupal 7

Для того что бы обрезать изображение, можно воспользоваться стандартными возможностями модуля Image из ядра Drupal. Но рассмотрим такой случай, выходное ихображение должно быть строго 150х150 пикселей и при этом должны сохраняться пропорции и изображение не должно быть обрезано.
Нам понадобится модуль ImageCache Actions. Данный модуль добавляет новые действия для изображений.
Что бы реализовать нашу задачу необходимо включить следующие модули:

  • Imagecache Actions
  • Imagecache Canvas Actions

После этого переходим на страницу редактирования уже существующего стиля либо добавляем новый.
Первое действие которое нужно добавить это масштабирование (Scale), в котором нужно указать желаемые размеры.

Add scale

Далее нам нужно добавить действие определить холст (Define canvas). В настройках этого действия будет предложено выбрать цвет, этот цвет будет использован для заливки холста, т.е. фактически это будет фоновый цвет вашей картинки, если она будет не пропорциональна желаемому размеру.
Далее размеры, нужно указать размеры в которых вы хотите видеть конечное изображение.

Add canvas

Canvas configure

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

Result

Комментарии

Аватар пользователя Michael
Michael
Опубликовано 23.11.2013

great! very informative!just need such a thing, not yet well understood, and now do not have-already there. Thank you!)

  • ответить
Аватар пользователя Игорь
Игорь
Опубликовано 26.01.2016

Спасибо! То что нужно. Нашел вашу страницу со второго раза.
Первый раз вбил в поиск: "drupal 7 стили изображений задать холст чтобы картинка стала квадратной" - приплыла только тина морская ;-)
А введя второй раз: "drupal 7 стили изображений квадратная картинка с сохранением пропорций" - вы на первом месте.
Ещё раз спасибо!

  • ответить
Аватар пользователя Игорь
Игорь
Опубликовано 26.01.2016

Вопрос: А если мы не знаем точного размера, например это может быть 350х600 или 800х420 (ширина Х высота)
1. А нужно сделать квадрат.
2. Или минимальную высоту и ширину 500
То как это сделать?
Спасибо за ответ.

  • ответить
Содержание этого поля является приватным и не предназначено к показу. Если у вас есть Gravatar аккаунт, связанный с введенным адресом email, то он будет использован для отображения вашего аватара.

Filtered HTML

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешённые HTML-теги: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Для публикации фрагментов кода, используйте тег <code>...</code>.

Категории блога

  • Drupal 7 (35)
  • Drupal 8 (1)
  • PHP (6)
  • jQuery (3)
  • Linux (6)
  • Интернет (1)
  • JavaScript (1)
  • Дизайн (1)
  • События (19)
  • Разное (1)

Архив блога

  • декабрь 2017 (1)
  • август 2017 (1)
  • июль 2017 (1)
  • июнь 2017 (1)
  • май 2017 (1)
  • апрель 2017 (1)
  • март 2017 (2)
  • сентябрь 2016 (2)
  • июнь 2016 (1)
  • январь 2016 (1)
  • сентябрь 2015 (2)
  • май 2015 (1)
  • февраль 2015 (3)
  • ноябрь 2014 (1)
  • октябрь 2014 (1)
  • сентябрь 2014 (1)
  • июль 2014 (1)
  • июнь 2014 (1)
  • май 2014 (1)
  • январь 2014 (1)
  • декабрь 2013 (3)
  • ноябрь 2013 (2)
  • сентябрь 2013 (2)
  • август 2013 (2)
  • июнь 2013 (3)
  • май 2013 (4)
  • апрель 2013 (2)
  • март 2013 (3)
  • февраль 2013 (1)
  • декабрь 2012 (3)

Связь с автором

Alex Schedrov Twitter Icon Alex Schedrov Facebook Icon Alex Schedrov Drupal Icon Alex Schedrov Github Alex Schedrov RSS Icon
© Schedrov Alexander, 2011—2021