Ürün fotoğraflarının kalitesi nasıl artırılır JPG (Magento 2)


18

Magento 2'deki JPG sıkıştırması çok güçlüdür, böylece ürün görüntülerinin kalitesi Katalog ve Ürün görünümünde gerçekten kötüleşir. Magento 2'deki JPG'ler için Görüntü sıkıştırmayı nasıl değiştirebilirim?

Yanıtlar:


15

Bu çözüm benim için çalışıyor:

Dosya: {Tedarikçi} / {Modül} /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>

Dosya: {Tedarikçi} / {Modül} / Model / Ürün Kaliteyi istediğiniz gibi ayarlayabilirsiniz. Ardından görüntü önbelleğini yıkayın.

namespace {Vendor}\{Module}\Model\Product;

class Image extends \Magento\Catalog\Model\Product\Image {

    protected function _construct() {
        $this->_quality = 100;

        parent::_construct();
    }
}

bu dosyayı özel temanıza koymanın yolu nedir? M2s dosyalama yapısını anlayamıyorum. M1 sooooo çok daha kolay oldu
styzzz

Uygulamada / kodda / {Satıcı} / {Modül}
Papamike

ancak yükseltme sırasında geçersiz kılmayacak mı? temanıza koymanız gerektiğini düşündüm. Hayır?
styzzz

1
Hayır, {Satıcı} klasörü ad alanınızla değiştirilmelidir (örnek olarak styzzz olabilir). Geçersiz kılmayacak. Örn .: / app / code / styzzz / ImageCompression / ...
Papamike

Ürün için PNG resminiz varsa, sıkıştırma seviyesi GD2 adaptöründe sabit kodlanmıştır: vendor/magento/framework/Image/Adapter/Gd2.php:1679'a (maks.)
Franck Garnier

5

Magento 2.3.2'ye gelince, kodu değiştirmeden görüntü kalitesini ayarlamak mümkündür:

Mağazalar> Yapılandırma> Gelişmiş> Sistem> Görüntü Yükleme Yapılandırması> Kalite> 100

XML yapılandırma yolu:

system/upload_configuration/jpeg_quality

Bu soruya bir cevap vermez. Yeterli bir üne sahip olduğunuzda , herhangi bir yazı hakkında yorum yapabilirsiniz ; bunun yerine askerden açıklama gerektirmeyen cevaplar verin . - Şu kaynaktan
Jai

1
"Magento 2'deki JPG'ler için Görüntü sıkıştırmasını nasıl değiştirebilirim" ... Bu soru değil mi?
K Vij

kod değişikliği gerekmediği için diğer cevaplardan daha iyi
Barry

2

içeride - satıcı / magento / modül-katalog / Yardımcı / Image.php

Genel:

public function setQuality($quality)
{
    $this->_getModel()->setQuality($quality);
    return $this;  
}

Kullanımı için grep yaparsanız, aynı adda bir yöntem bulacaksınız:

magento / modül-katalog / Model / Ürün / image.php

ve bu dosyanın içinde:

/**
 * Default quality value (for JPEG images only).
 *
 * @var int
 */         
protected $_quality = 80;

Bu değer - 95'e ayarlanması gerekiyor.

Bu, sitedeki sıkıştırmayı ve eserleri azaltacaktır.

Sizin çocuklar i uygun bir konuşlandırılmış kod geçersiz kılma ile bu değişiklikleri yapmak zorunda olduğunu varsayalım - yani bu çekirdek dosyayı değiştirerek. Im bir magento geliştirici değil, aksi takdirde bir çatlak olurdu ....


3
Aslında, Çekirdekteki (satıcı) herhangi bir değerin değiştirilmesi bir sonraki güncellemeyle üzerine yazılacaktır, bu nedenle çekirdek dosyaları değiştirmek genellikle kötü bir fikirdir
Marcel Hauri

2

Buradaki cevaplar oldukça yanlış IMO. İlk elden değiştirmeniz gereken kalite değil , görüntülerin boyutu. Neden?

Şey, mümkün olan en küçük dosya boyutunu elde etmek için bir görüntüyü sıkıştırırken sıkıştırma oranının bu hedefe ulaşmada en faydalı olmasıdır. İkincisi görüntünün boyutlarıdır. Ayrıca, ayrıntıları koruyarak dosya boyutunu olabildiğince küçültmek için orijinal kaynak görüntüsünü küçültmeden önce her zaman sıkıştırmalısınız (macenin bunu nasıl ele aldığını kontrol etmedim).

Retina ekranlarda görüntülenen boyutun 2 katı olmalıdır. Bu nedenle, 250x250 pikselde keskin bir görüntü elde etmek için görüntünün 500x500 piksel olması gerekir.

Bu yüzden view.xml, görüntülenen boyutu iki katına çıkarmak için temalarda değişiklik yapmaya başladım . Görüntü hala iyi görünmüyorsa, kalite ayarını yükseltmeyi düşünürüm. Zamanınız varsa duyarlı görüntüler de uygulayabilirsiniz (böylece çift boyutlar sadece retina ekran cihazlarına yüklenir ).

Ayrıca, görüntüden tüm meta verileri kaldırarak boyutu azaltabilirsiniz, magento'nun bunu varsayılan olarak yapıp yapmadığından emin değilsiniz. Genellikle iyi görüntü sıkıştırma hizmetlerinin bir parçasıdır.


1
Bu arkadaşı açıkladığınız için teşekkürler! Magento'nun imajını soymak için mantıklı bir neden olması gerektiğini biliyordum! Yine de uygulama konusunda biraz kafam karıştı. Yani, ürünlerimin ürün sayfasında 700 piksel kare olarak görüntülendiğini varsayalım, o zaman 1400 piksel kare bir resim oluşturmam, sonra view.xml dosyasındaki ilgili ayarı da 1400 piksel olarak değiştirmem gerekir mi? Bununla ve diğer cevaplarda belirtilen geçersiz kılma ile oynuyorum, ancak ürün sayfasında 'yakınlaştırılmış' görünüme girmek için görüntüye tıkladığımdan daha düşük kalite her zaman daha düşük.
Joshua Flood

@JoshuaFlood Yakınlaştırılan görüntünün view.xml dosyasında daha büyük bir boyutu olan kendi girdisi olduğunu düşünüyorum, tam olarak hangi tuşa sahip olduğunu veya ne büyüklükte olduğunu hatırlayamıyorum
OZZIE

Endişeye gerek yok ben sıraladım. Bahşiş için teşekkürler! Tam olarak ne yaptığını emin değilim ama ben 'küçük' görüntüleri çift boyutlu olanlarla değiştirmeyi unuttum, bu yüzden sorun orada olabilir.
Joshua Flood

Bu iyi bir cevap değil. Yapmanız gereken duyarlı görüntüler ve srcset özniteliğini kullanmaktır - sadece gerektiğinde küçültülecek daha büyük bir görüntü sağlamakla kalmaz.
fritzmg

@fritzmg "ilk el" "Zamanınız varsa duyarlı görüntüler de uygulayabilirsiniz" .. hangi bölümü anlamakta zorlanıyorsunuz?
OZZIE
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.