การบีบอัด JPG บน Magento 2 นั้นแข็งแกร่งมากดังนั้นคุณภาพของรูปผลิตภัณฑ์จะแย่มากในมุมมองแคตตาล็อกและผลิตภัณฑ์ ฉันจะเปลี่ยนการบีบอัดภาพสำหรับ JPG ใน Magento 2 ได้อย่างไร
การบีบอัด JPG บน Magento 2 นั้นแข็งแกร่งมากดังนั้นคุณภาพของรูปผลิตภัณฑ์จะแย่มากในมุมมองแคตตาล็อกและผลิตภัณฑ์ ฉันจะเปลี่ยนการบีบอัดภาพสำหรับ JPG ใน Magento 2 ได้อย่างไร
คำตอบ:
วิธีนี้ใช้ได้ผลสำหรับฉัน:
ไฟล์: {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>
ไฟล์: {ผู้ขาย} / {โมดูล} / รุ่น / ผลิตภัณฑ์คุณสามารถตั้งค่าคุณภาพเป็นสิ่งที่คุณต้องการ จากนั้นล้างแคชภาพ
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 (สูงสุด)
สำหรับ Magento 2.3.2 เป็นไปได้ที่จะกำหนดคุณภาพของภาพโดยไม่ต้องเปลี่ยนรหัส:
ร้านค้า> การกำหนดค่า> ขั้นสูง> ระบบ> การอัปโหลดรูปภาพการกำหนดค่า> คุณภาพ> 100
เส้นทางการกำหนดค่า XML คือ:
system/upload_configuration/jpeg_quality
ภายใน - ผู้ขาย / magento / โมดูลแคตตาล็อก / ผู้ช่วย / 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 ไม่ใช่คุณภาพที่คุณควรเปลี่ยนด้วยตัวเอง แต่เป็นขนาดของภาพ ทำไม?
สิ่งที่ดีคือเมื่อทำการบีบอัดภาพเพื่อให้ได้ขนาดไฟล์ที่เล็กที่สุดเท่าที่จะเป็นไปได้อัตราการบีบอัดจะเป็นประโยชน์มากที่สุดในการบรรลุเป้าหมายนั้น ส่วนที่สองคือขนาดของภาพ นอกจากนี้คุณควรบีบอัดอิมเมจต้นฉบับดั้งเดิมก่อนที่จะลดขนาด (ฉันไม่ได้ตรวจสอบว่าวีโอไอพีจัดการกับเรื่องนี้อย่างไร) เพื่อลดขนาดไฟล์ให้มากที่สุดเท่าที่จะเป็นไปได้ในขณะที่ยังคงรักษารายละเอียดไว้
บนหน้าจอเรตินาคุณต้องมีขนาดที่แสดงเป็น 2 เท่า ดังนั้นเพื่อให้ได้ภาพที่คมชัดที่แสดงที่ 250x250 พิกเซลจากนั้นภาพจะต้องมีขนาด 500x500 พิกเซล
ดังนั้นฉันจะเริ่มด้วยการเปลี่ยนธีมview.xml
เพื่อเพิ่มขนาดที่แสดง หากภาพยังดูไม่ดีฉันจะลองพิจารณาตั้งค่าคุณภาพ หากคุณมีเวลาคุณสามารถใช้รูปภาพที่ตอบสนองได้เช่นกัน (ขนาดที่เพิ่มขึ้นสองเท่าจะถูกโหลดบนอุปกรณ์หน้าจอเรตินาเท่านั้น )
คุณสามารถลดขนาดข้อมูลลงได้โดยลบข้อมูลเมตาทั้งหมดออกจากภาพไม่แน่ใจว่าวีโอไอพีจะทำตามค่าเริ่มต้นหรือไม่ มักเป็นส่วนหนึ่งของบริการบีบอัดภาพที่ดี