Kompresi JPG pada Magento 2 sangat kuat, sehingga kualitas gambar produk menjadi sangat buruk dalam tampilan Katalog dan Produk. Bagaimana saya bisa mengubah kompresi gambar untuk JPG di Magento 2?
Kompresi JPG pada Magento 2 sangat kuat, sehingga kualitas gambar produk menjadi sangat buruk dalam tampilan Katalog dan Produk. Bagaimana saya bisa mengubah kompresi gambar untuk JPG di Magento 2?
Jawaban:
Solusi ini bekerja untuk saya:
File: {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 Anda dapat mengatur kualitas menjadi apa pun yang Anda inginkan. Lalu siram cache gambar.
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
ke 9 (maks)
Adapun Magento 2.3.2 dimungkinkan untuk mengatur kualitas gambar tanpa mengubah kode:
Toko> Konfigurasi> Lanjutan> Sistem> Konfigurasi Unggah Gambar> Kualitas> 100
Jalur konfigurasi XML adalah:
system/upload_configuration/jpeg_quality
di dalam - vendor / magento / module-catalog / Helper / Image.php
Anda akan menemukan generik:
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
Jika Anda memahami penggunaannya, Anda akan menemukan metode dengan nama yang sama di:
magento / modul-katalog / Model / Produk / Image.php
dan di dalam file itu:
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
Nilai ini - yang perlu diatur ke 95.
Ini akan mengurangi kompresi dan artefak di situs.
Orang-orang Anda akan saya anggap harus melakukan modifikasi ini dengan mengganti kode yang digunakan - bukan dengan modifikasi file inti ini. Saya bukan pengembang Magento kalau tidak saya akan retak ....
Jawabannya di sini adalah IMO yang salah. Ini bukan kualitas yang Anda harus mengubah tangan pertama , itu ukuran gambar. Mengapa?
Nah masalahnya adalah ketika mengompresi gambar untuk mendapatkan ukuran file sekecil mungkin maka tingkat kompresi adalah yang paling bermanfaat dalam mencapai tujuan itu. Yang kedua adalah dimensi gambar. Anda juga harus selalu mengompresi gambar sumber asli sebelum mengurangi ukurannya (saya belum memeriksa bagaimana Magento menangani ini) untuk mendapatkan ukuran file sebanyak mungkin sambil menjaga detail.
Pada layar retina Anda perlu 2x ukuran yang ditampilkan. Jadi untuk mendapatkan gambar yang tajam ditampilkan pada 250x250 piksel, maka gambar tersebut harus 500x500 piksel.
Jadi saya akan mulai dengan mengubah tema view.xml
untuk menggandakan ukuran yang ditampilkan. Jika gambar masih tidak terlihat bagus maka saya akan mempertimbangkan untuk meningkatkan pengaturan kualitas. Jika Anda punya waktu, Anda dapat menerapkan gambar responsif juga (jadi ukuran dua kali lipat hanya dimuat pada perangkat layar retina ).
Anda juga bisa menurunkan ukuran dengan menghapus semua data meta dari gambar, tidak yakin apakah magento melakukan itu secara default atau tidak. Ini biasanya merupakan bagian dari layanan kompresi gambar yang baik.