Magento 2의 JPG 압축은 매우 강력하여 카탈로그 및 제품보기에서 제품 이미지의 품질이 실제로 나빠집니다. Magento 2에서 JPG의 이미지 압축을 어떻게 변경할 수 있습니까?
답변
이 솔루션은 저에게 효과적입니다.
파일 : {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>
File : {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();
}
}
답변
Magento 2.3.2의 경우 코드를 변경하지 않고 이미지 품질을 설정할 수 있습니다.
상점> 구성> 고급> 시스템> 이미지 업로드 구성> 품질> 100
XML 구성 경로는 다음과 같습니다.
system/upload_configuration/jpeg_quality
답변
내부-vendor / magento / module-catalog / Helper / Image.php
당신은 일반적인 것을 찾을 수 있습니다 :
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
사용법을 grep하면 다음과 같은 이름의 메소드를 찾을 수 있습니다.
마 젠토 / 모듈-카탈로그 / 모델 / 제품 /Image.php
그리고 그 파일 내부 :
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
이 값은 95로 설정해야합니다.
이것은 사이트의 압축과 인공물을 줄입니다.
여러분은 적절하게 배포 된 코드 재정의 로이 수정 작업을 수행해야한다고 가정합니다 (즉,이 핵심 파일을 수정하지 않음). 그렇지 않으면 마 젠토 개발자가 아닙니다. 그렇지 않으면 균열이 생길 것입니다 ….
답변
여기에 대한 답변은 꽤 잘못된 IMO입니다. 직접 변경해야하는 품질이 아니라 이미지의 크기입니다. 왜?
이미지를 압축하여 가능한 가장 작은 파일 크기를 얻을 때 압축률이 해당 목표를 달성하는 데 가장 유리합니다. 두 번째는 이미지의 크기입니다. 또한 세부 사항을 유지하면서 가능한 한 많이 파일 크기를 줄이려면 크기를 조정하기 전에 항상 원본 소스 이미지를 압축해야합니다 (magento가 처리하는 방법을 확인하지 않았습니다).
망막 화면에서는 표시된 크기의 2 배가 필요합니다. 따라서 250×250 픽셀로 선명한 이미지를 표시하려면 이미지가 500×500 픽셀이어야합니다.
따라서 테마 view.xml
를 변경 하여 표시된 크기를 두 배로 시작하겠습니다 . 이미지가 여전히 좋지 않으면 품질 설정을 높이는 것이 좋습니다. 시간이 있다면 반응 형 이미지도 구현할 수 있습니다 (따라서 두 배 크기는 retina 화면 장치에만로드 됨 ).
magento가 기본적으로 수행하는지 확실하지 않은 경우 이미지에서 모든 메타 데이터를 제거하여 크기를 줄일 수도 있습니다. 일반적으로 좋은 이미지 압축 서비스의 일부입니다.