Categories: Мадженто 2

Как изменить размер картинок в Magento 2

Размер картинки товара, а также другие параметры картинок в Magento 2 определяются в файле <ТЕМА>/etc/view.xml. Путь к ТЕМЕ следующий: app/design/frontend/<Vendor>/ТЕМА. Например, для темы Magento Blank расположение файла view.xml следующее: app/design/frontend/Magento/blank/etc/view.xml. Если же вы устанавливали тему через Composer, тогда папку темы можно найти в vendor/magento/theme-frontend-<КОД_ТЕМЫ>. В файле view.xml содержится конфигурация изображений для товаров, а также для картинок-миниатюр магазина. Этот файл является обязательным для темы, но его можно не использовать, если он есть в родительской теме. Родительская тема объявляется в файле <ТЕМА>/theme.xml в ноде <parent>.

 

Конфигурация изображений находится в ноде <images module="Magento_Catalog">. Она выглядит примерно так:

<images module="Magento_Catalog">
 <image id="image_location_id" type="image_type">
  <width>200</width>
  <height>200</height>
  ...
 </image>
</images>

 

 

Конфигурация картинок в Мадженто 2

Рассмотрим более подробно настройки конфигураций картинок

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

type – определяет, какая картинка будет отображаться. Типы картинок описаны в админке Каталог > Товары в разделе «Изображения и Видео». Каждый тип может иметь свою собственную картинку, что позволяет загружать разные изображения для небольших миниатюр или для большого изображения. Допустимые значения:

  • image – соответствует типу базового изображения
  • small_image – соответствует типу маленькой картинки
  • swatch_image – соответствует типу Swatch Image (переключение картинок)
  • swatch_thumb – соответствует типу Swatch Image (переключение картинок)
  • thumbnail – соответствует типу эскизного изображения (миниатюра)

 

Если вам нужно изменить/перезаписать значения в файле view.xml, для этого вам придется скопировать весь файл view.xml в свою тему и внести нужные правки. Недостающие узлы в вашей теме не наследуются от родительской темы, поэтому и нужно копировать весь файл.

 

 

Как изменить размеры картинки товара

Чтобы изменить размеры картинки товара в Magento 2, откройте файл <ТЕМА>/etc/view.xml, найдите изображение с нужным идентификатором и обновите параметры widht/height. Например, изменим размер картинок товара на странице товаров (в режиме Сетки). Для этих картинок ID будет таким category_page_grid. Внесите изменения в следующий нод (узел):

<image id="category_page_grid" type="small_image">
  <width>250</width>
  <height>250</height>
</image>

 

 

Полный список параметров картинки

Фреймворк Magento 2 может изменять размеры изображений, сохранять пропорции, сохранять прозрачность изображения, обрезать и т.д. Весь список параметров выглядит так:

  • width – ширина изображения в пикселях. Используется для изменения размера картинки товара.
    • Тип: целое число
    • Значение по умолчанию: нет
  • height – высота картинки в пикселях. Используется для изменения размера картинки товара.
    • Тип: целое число
    • Значение по умолчанию: нет
  • constrain – если для параметра «constrain» установлено значение true, изображения, которые меньше заданного значения, не будут увеличиваться Magento. Будет увеличиваться только рамка кадрирования. Этот параметр может использоваться для небольших изображений товара, если вы не хотите, чтобы Magento изменял их размер. Не влияет на изображения с большими размерами, чем указано в параметрах ширины/высоты.
    • Тип: boolean
    • Значение по умолчанию: true
  • aspect_ratio – если установлено значение true, соотношение пропорций между шириной и высотой картинки остается неизменным.
    • Тип: boolean
    • Значение по умолчанию: true
  • frame – если установлено значение true, изображение не будет обрезано. Применяется только в том случае, если для параметра aspect_ratio установлено значение true.
    • Тип: boolean
    • Значение по умолчанию: true
  • transparency – если установлено значение true, сохраняется прозрачный фон изображений. Если установлено значение false, изображения будут иметь белый фон (по умолчанию). Вы можете установить свой цвет фона, используя параметр background.
    • Тип: boolean
    • Значение по умолчанию: true
  • background – цвет фона для изображений. Не применяется к изображениям с прозрачностью, если для transparency установлено значение true. Используйте параметр для добавления рамки изображения при изменении размера фотографий и изменении фонового цвета.
    • Тип: строка
    • Значение по умолчанию: [255, 255, 255]

 

 

Применение изменений

Когда вы закончите редактирование файла view.xml и укажете новые значения параметров, вам нужно дать команду Magento перегенерировать изображения товаров. Это можно сделать с помощью следующих команд в консоли Magento 2:

php bin/magento catalog:images:resize
php bin/magento cache:clean

 

 

Использование в .phtml шаблонах

Вы можете использовать другие настройки для параметров картинок непосредственно в файлах-шаблонах темы. Для этого вам нужно сделать инъекцию зависимостей Хелпер класса для картинок (\Magento\Catalog\Helper\Image) в класс используемого Блока для шаблона.

Пример кода:

/**
* @var $block \Magento\Catalog\Block\Product\Widget\NewWidget
* @var $imageHelper \Magento\Catalog\Helper\Image
*/$image = 'product_page_more_views';
$items = $block->getProductCollection()->getItems();
$width = 250;
$height = 250;
foreach ($items as $_item) {
  $resizedUrl = $imageHelper->init($_item, $image )
  ->keepAspectRatio(TRUE)
  ->constrainOnly(TRUE)
  ->keepFrame(TRUE)
  ->resize($width, $height)
  ->getUrl();
  echo '<img src="'. $resizedUrl .'" alt="alt text" />';
}

 

Share
Published by
SebWeo
Tags: Magento2

Recent Posts

Права категории C: кому они нужны и как их получить?

Получение водительских прав категории C открывает двери к профессиональной деятельности, связанной с управлением грузовыми автомобилями.…

4 дня ago

Уилл Смит

Хорошие люди принесут вам счастье, плохие люди наградят вас опытом, худшие — дадут вам урок,…

5 дней ago

Особенности и преимущества iPhone 14 Plus

Выход айфонов 15 и 16 поколения — не повод забыть об устройствах 14-го, которые продолжают…

5 дней ago

Как уберечь свои картинки на сайте от незаконного использования (кражи)

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

1 неделя ago

Есть ли альтернативы у гамбургер-меню для навигации по сайту

Подавляющую часть всего мирового веб-трафика занимает трафик с мобильных устройств (включая планшеты), поэтому этот факт…

2 недели ago

Джон Брэйн

Не стоит портить нервы из-за того, что мир устроен так, а не иначе Джон Брэйн…

3 недели ago