제품 사진 JPG (Magento 2)의 품질을 높이는 방법


18

Magento 2의 JPG 압축은 매우 강력하여 카탈로그 및 제품보기에서 제품 이미지의 품질이 실제로 나빠집니다. Magento 2에서 JPG의 이미지 압축을 어떻게 변경할 수 있습니까?

답변:


15

이 솔루션은 저에게 효과적입니다.

파일 : {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();
    }
}

이 파일을 사용자 정의 테마에 넣는 경로는 무엇입니까? 나는 M2s 파일 구조를 알아낼 수 없다. M1은 sooooo 훨씬 쉬웠다
styzzz

앱 / 코드 / {Vendor} / {Module}
Papamike

하지만 업그레이드 중에 재정의되지 않습니까? 나는 당신이 당신의 테마에 넣어야한다고 생각했습니다. 아니?
styzzz

1
아니요, {Vendor} 폴더는 네임 스페이스로 바꿔야합니다 (예 : styzzz 일 수 있음). 재정의되지 않습니다. 예 : / app / code / styzzz / ImageCompression / ...
Papamike

당신이 제품에 대한 PNG 이미지가있는 경우, 압축 레벨은 GD2 어댑터에 하드 코딩 : vendor/magento/framework/Image/Adapter/Gd2.php:1679 (최대)로
프랑크 가니 에르

5

Magento 2.3.2의 경우 코드를 변경하지 않고 이미지 품질을 설정할 수 있습니다.

상점> 구성> 고급> 시스템> 이미지 업로드 구성> 품질> 100

XML 구성 경로는 다음과 같습니다.

system/upload_configuration/jpeg_quality

이것은 질문에 대한 답변을 제공하지 않습니다. 평판 이 충분 하면 모든 게시물댓글 수 있습니다 . 대신 asker의 설명이 필요없는 답변을 제공하십시오 . - 검토에서
Jai

1
"Magento 2에서 JPG의 이미지 압축을 어떻게 변경할 수 있습니까?"... 이것이 문제가 아니 었습니까?
K Vij

코드 변경이 필요하지 않으므로 다른 답변보다 낫습니다
Barry

2

내부-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로 설정해야합니다.

이것은 사이트의 압축과 인공물을 줄입니다.

여러분은 적절하게 배포 된 코드 재정의 로이 수정 작업을 수행해야한다고 가정합니다 (즉,이 핵심 파일을 수정하지 않음). 그렇지 않으면 마 젠토 개발자가 아닙니다. 그렇지 않으면 균열이 생길 것입니다 ....


3
실제로 코어 (공급 업체)의 값을 변경하면 다음 업데이트로 덮어 쓰기 때문에 코어 파일을 변경하는 것은 일반적으로 나쁜 생각입니다
Marcel Hauri

2

여기에 대한 답변은 꽤 잘못된 IMO입니다. 직접 변경해야하는 품질이 아니라 이미지의 크기입니다. 왜?

이미지를 압축하여 가능한 가장 작은 파일 크기를 얻을 때 압축률이 해당 목표를 달성하는 데 가장 유리합니다. 두 번째는 이미지의 크기입니다. 또한 세부 사항을 유지하면서 가능한 한 많이 파일 크기를 줄이려면 크기를 조정하기 전에 항상 원본 소스 이미지를 압축해야합니다 (magento가 처리하는 방법을 확인하지 않았습니다).

망막 화면에서는 표시된 크기의 2 배가 필요합니다. 따라서 250x250 픽셀로 선명한 이미지를 표시하려면 이미지가 500x500 픽셀이어야합니다.

따라서 테마 view.xml를 변경 하여 표시된 크기를 두 배로 시작하겠습니다 . 이미지가 여전히 좋지 않으면 품질 설정을 높이는 것이 좋습니다. 시간이 있다면 반응 형 이미지도 구현할 수 있습니다 (따라서 두 배 크기는 retina 화면 장치에만로드 됨 ).

magento가 기본적으로 수행하는지 확실하지 않은 경우 이미지에서 모든 메타 데이터를 제거하여 크기를 줄일 수도 있습니다. 일반적으로 좋은 이미지 압축 서비스의 일부입니다.


1
이 배우자를 설명해 주셔서 감사합니다! magento의 이미지 tomfoolery에 대한 논리적 인 이유가 있어야한다는 것을 알고있었습니다! 그래도 여전히 구현에 대해 약간 혼란 스럽습니다. 내 제품이 제품 페이지에 700px 정사각형으로 표시되면 1400px 정사각형의 이미지를 만든 다음 view.xml 파일의 해당 설정을 1400px로 변경해야합니까? 나는 이것과 다른 답변에서 언급 된 재정의를 가지고 놀고 있었지만 이미지를 클릭하여 '확대'보기에 들어가면 품질이 제품 페이지의 품질보다 항상 낮습니다.
Joshua 홍수

@JoshuaFlood 확대 된 이미지에는 view.xml에 더 큰 크기의 항목이 있다고 생각합니다. 키의 크기 나 크기를 정확히 기억할 수 없습니다.
OZZIE

걱정하지 않아도됩니다. 팁 고마워! 정확히 무엇을했는지는 모르지만 '작은'이미지를 이중 크기의 이미지로 바꾸는 것을 잊어 버렸으므로 문제가있을 수 있습니다.
Joshua Flood

이것은 좋은 대답이 아닙니다. 반응 형 이미지와 srcset 속성을 사용해야합니다. 일반적으로 필요할 때마다 축소되는 더 큰 이미지 만 제공하는 것이 아닙니다.
fritzmg

@fritzmg "처음" "시간이 있다면 반응 형 이미지도 구현할 수 있습니다".. 이해하기 어려운 부분은 무엇입니까?
OZZIE
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.