Die JPG-Komprimierung in Magento 2 ist sehr stark, sodass die Qualität der Produktbilder in der Katalog- und Produktansicht sehr schlecht wird. Wie kann ich die Bildkomprimierung für JPGs in Magento 2 ändern?
Die JPG-Komprimierung in Magento 2 ist sehr stark, sodass die Qualität der Produktbilder in der Katalog- und Produktansicht sehr schlecht wird. Wie kann ich die Bildkomprimierung für JPGs in Magento 2 ändern?
Antworten:
Diese Lösung funktioniert bei mir:
Datei: {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>
Datei: {Vendor} / {Module} / Model / Product Sie können die Qualität nach Belieben einstellen. Leeren Sie dann den Bild-Cache.
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
Wie bei Magento 2.3.2 ist es möglich, die Bildqualität einzustellen, ohne den Code zu ändern:
Stores> Konfiguration> Erweitert> System> Konfiguration zum Hochladen von Bildern> Qualität> 100
Der XML-Konfigurationspfad lautet:
system/upload_configuration/jpeg_quality
inside - Hersteller / Magento / Modul-Katalog / Helper / Image.php
Sie finden das Generikum:
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
Wenn Sie nach seiner Verwendung suchen, finden Sie eine Methode mit dem gleichen Namen in:
magento / modulkatalog / modell / produkt / image.php
und in dieser Datei:
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
Dieser Wert muss auf 95 gesetzt werden.
Dies reduziert die Komprimierung und Artefakte auf der Site.
Ich gehe davon aus, dass Ihre Jungs diese Änderungen mit einem entsprechend implementierten Code-Override vornehmen müssen - also nicht durch Änderung dieser Kerndatei. Ich bin kein Magento-Entwickler, sonst hätte ich einen Riss ...
Die Antworten hier sind ziemlich falsch, IMO. Es ist nicht die Qualität, die Sie aus erster Hand ändern sollten , es ist die Größe der Bilder. Warum?
Wenn Sie ein Bild komprimieren, um die kleinstmögliche Dateigröße zu erhalten, ist die Komprimierungsrate am vorteilhaftesten, um dieses Ziel zu erreichen. Das zweite sind die Abmessungen des Bildes. Außerdem sollten Sie das ursprüngliche Quellbild immer komprimieren, bevor Sie es verkleinern (ich habe nicht überprüft, wie Magento damit umgeht), um die Dateigröße so weit wie möglich zu verringern und gleichzeitig Details zu erhalten.
Auf Retina-Bildschirmen benötigen Sie 2x die angezeigte Größe. Damit ein scharfes Bild mit 250 x 250 Pixel angezeigt wird, muss es 500 x 500 Pixel groß sein.
Also würde ich mit dem Ändern der Themen beginnen view.xml
, um die angezeigte Größe zu verdoppeln. Wenn das Bild immer noch nicht gut aussieht, würde ich die Qualitätseinstellung erhöhen. Wenn Sie Zeit haben, können Sie auch reaktionsschnelle Bilder implementieren (doppelte Größen werden also nur auf Geräten mit Retina-Bildschirm geladen ).
Sie können die Größe auch verringern, indem Sie alle Metadaten aus dem Image entfernen. Sie sind sich nicht sicher, ob Magento dies standardmäßig tut oder nicht. Dies ist normalerweise ein Teil guter Bildkomprimierungsdienste.