Сжатие JPG в Magento 2 очень сильное, поэтому качество изображений продуктов в представлении «Каталог» и «Продукт» становится очень плохим. Как я могу изменить сжатие изображения для JPG в Magento 2?
Сжатие JPG в Magento 2 очень сильное, поэтому качество изображений продуктов в представлении «Каталог» и «Продукт» становится очень плохим. Как я могу изменить сжатие изображения для JPG в Magento 2?
Ответы:
Это решение работает для меня:
Файл: {Vendor} / {Module} /etc/di.xml
<?xml version="1.0"?>
<config xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="urn:magento:framework:ObjectManager/etc/config.xsd">
<preference for="Magento\Catalog\Model\Product\Image" type="{Vendor}\{Module}\Model\Product\Image" />
</config>
Файл: {Vendor} / {Module} / Model / Product. Вы можете установить качество на ваше усмотрение. Затем очистите кэш изображений.
namespace {Vendor}\{Module}\Model\Product;
class Image extends \Magento\Catalog\Model\Product\Image {
protected function _construct() {
$this->_quality = 100;
parent::_construct();
}
}
vendor/magento/framework/Image/Adapter/Gd2.php:167
до 9 (макс.)
Что касается Magento 2.3.2, то можно установить качество изображения без изменения кода:
Магазины> Конфигурация> Дополнительно> Система> Конфигурация загрузки изображений> Качество> 100
Конфигурационный путь XML:
system/upload_configuration/jpeg_quality
внутри - вендор / magento / module-каталог / Helper / Image.php
Вы найдете общий:
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
Если вы grep для его использования, вы найдете метод с тем же именем в:
Magento / модуль-каталог / модель / продукта / image.php
и внутри этого файла:
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
Именно это значение должно быть установлено на 95.
Это уменьшит сжатие и артефакты на сайте.
Я полагаю, что ваши парни должны будут внести эти изменения с соответствующим образом развернутым переопределением кода - т.е. не путем модификации этого основного файла. Я не разработчик magento, иначе у меня будет крэк ....
Ответы здесь довольно неправильные ИМО. Это не качество, которое вы должны изменить из первых рук , это размер изображений. Почему?
Дело в том, что при сжатии изображения до минимально возможного размера файла степень сжатия является наиболее выгодной для достижения этой цели. Второй размер изображения. Также вы всегда должны сжимать исходное исходное изображение перед уменьшением его размера (я не проверял, как magento справляется с этим), чтобы максимально уменьшить размер файла при сохранении деталей.
На экранах сетчатки вам нужно в 2 раза больше отображаемого размера. Таким образом, чтобы получить четкое изображение с разрешением 250x250 пикселей, оно должно быть 500x500 пикселей.
Поэтому я бы начал с изменения тем, view.xml
чтобы удвоить отображаемый размер. Если изображение по-прежнему выглядит не очень хорошо, я бы подумал о повышении качества. Если у вас есть время, вы также можете реализовать адаптивные изображения (таким образом, удвоенные размеры загружаются только на устройствах с сетчаткой ).
Вы также можете уменьшить размер, удалив все метаданные с изображения, не будучи уверенным, если magento делает это по умолчанию или нет. Обычно это часть хороших сервисов сжатия изображений.