La compression JPG sur Magento 2 est très forte, de sorte que la qualité des images de produits devient vraiment mauvaise dans la vue Catalogue et Produit. Comment puis-je changer la compression d'image pour les JPG dans Magento 2?
La compression JPG sur Magento 2 est très forte, de sorte que la qualité des images de produits devient vraiment mauvaise dans la vue Catalogue et Produit. Comment puis-je changer la compression d'image pour les JPG dans Magento 2?
Réponses:
Cette solution fonctionne pour moi:
Fichier: {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>
Fichier: {Vendeur} / {Module} / Modèle / Produit Vous pouvez définir la qualité à votre guise. Vider ensuite le cache d'images.
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 (max)
Comme pour Magento 2.3.2, il est possible de définir la qualité d'image sans changer le code:
Magasins> Configuration> Avancé> Système> Configuration de téléchargement d'images> Qualité> 100
Le chemin de configuration XML est:
system/upload_configuration/jpeg_quality
à l'intérieur - fournisseur / magento / module-catalogue / Helper / Image.php
Vous trouverez le générique:
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
Si vous applaudissez à son utilisation, vous trouverez une méthode du même nom dans:
magento / module-catalogue / Modèle / Produit / Image.php
et à l'intérieur de ce fichier:
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
C'est cette valeur - qui doit être réglée sur 95.
Cela réduira la compression et les artefacts du site.
Vos gars supposeront que je dois apporter ces modifications avec un remplacement de code convenablement déployé - c'est-à-dire pas en modifiant ce fichier principal. Je ne suis pas un développeur magento sinon j'aurais une fissure ....
Les réponses ici sont assez fausses OMI. Ce n'est pas la qualité que vous devriez être en train de changer de première main , c'est la taille des images. Pourquoi?
Eh bien, le fait est que lors de la compression d'une image pour obtenir la plus petite taille de fichier possible, le taux de compression est le plus avantageux pour atteindre cet objectif. Le second est les dimensions de l'image. De plus, vous devez toujours compresser l'image source d'origine avant de la réduire (je n'ai pas vérifié comment magento gère cela) pour réduire autant que possible la taille du fichier tout en préservant les détails.
Sur les écrans de rétine, vous avez besoin de 2x la taille affichée. Donc, pour obtenir une image nette affichée à 250x250 pixels, l'image doit être de 500x500 pixels.
Je commencerais donc par changer les thèmes view.xml
pour doubler la taille affichée. Si l'image ne semble toujours pas bonne, j'envisagerais d'augmenter le paramètre de qualité. Si vous avez le temps, vous pouvez également implémenter des images réactives (les tailles doublées ne sont donc chargées que sur les écrans à rétine ).
Vous pouvez également réduire la taille en supprimant toutes les métadonnées de l'image, vous ne savez pas si magento le fait par défaut ou non. Cela fait généralement partie de bons services de compression d'image.