Magento 2上的JPG压缩非常强大,因此在目录和产品视图中,产品图像的质量确实很差。如何在Magento 2中更改JPG的图像压缩?
Magento 2上的JPG压缩非常强大,因此在目录和产品视图中,产品图像的质量确实很差。如何在Magento 2中更改JPG的图像压缩?
Answers:
这个解决方案对我有用:
文件:{供应商} / {模块} /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>
文件:{供应商} / {模块} /型号/产品您可以将质量设置为所需的任何值。然后刷新图像缓存。
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(最大值)
内部-vendor / magento / module-catalog / 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开发人员,否则我会有裂痕。
答案是错误的IMO。这不是你应该改变质量的第一手资料,这是图像的大小。为什么?
好吧,当压缩图像以使文件最小时,压缩率对于实现该目标最为有益。第二个是图像的尺寸。同样,您应该始终在缩小原始源图像之前对其进行压缩(我没有检查过magento的处理方式),以便在保留细节的同时尽可能减小文件大小。
在视网膜屏幕上,您需要显示尺寸的2倍。因此,为了获得以250x250像素显示的清晰图像,则图像需要为500x500像素。
因此,我将从更改主题view.xml
以使显示的大小增加一倍开始。如果图像仍然看起来不佳,那么我会考虑提高质量设置。如果有时间,您也可以实现响应式图像(因此,仅在视网膜屏幕设备上加载了两倍大小的图像)。
您也可以通过从图像中删除所有元数据来减小尺寸,不确定magento是否默认执行该操作。它通常是良好的图像压缩服务的一部分。