Khả năng nén JPG trên Magento 2 rất mạnh, do đó chất lượng hình ảnh sản phẩm trở nên rất tệ trong chế độ xem Danh mục và Sản phẩm. Làm cách nào để thay đổi nén hình ảnh cho JPG trong Magento 2?
Khả năng nén JPG trên Magento 2 rất mạnh, do đó chất lượng hình ảnh sản phẩm trở nên rất tệ trong chế độ xem Danh mục và Sản phẩm. Làm cách nào để thay đổi nén hình ảnh cho JPG trong Magento 2?
Câu trả lời:
Giải pháp này hiệu quả với tôi:
Tệp: {Nhà cung cấp} / {Mô-đun} /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>
Tệp: {Nhà cung cấp} / {Mô-đun} / Kiểu / Sản phẩm Bạn có thể đặt chất lượng thành bất cứ thứ gì bạn muốn. Sau đó xóa bộ nhớ cache hình ảnh.
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
đến 9 (tối đa)
Đối với Magento 2.3.2, có thể đặt chất lượng hình ảnh mà không cần thay đổi mã:
Cửa hàng> Cấu hình> Nâng cao> Hệ thống> Cấu hình tải lên hình ảnh> Chất lượng> 100
Đường dẫn cấu hình XML là:
system/upload_configuration/jpeg_quality
bên trong - nhà cung cấp / magento / mô-đun danh mục / Người trợ giúp / Image.php
Bạn sẽ tìm thấy chung chung:
public function setQuality($quality)
{
$this->_getModel()->setQuality($quality);
return $this;
}
Nếu bạn grep cho việc sử dụng nó, bạn sẽ tìm thấy một phương thức cùng tên trong:
magento / mô-đun-catalog / Model / Sản phẩm / Image.php
và bên trong tập tin đó:
/**
* Default quality value (for JPEG images only).
*
* @var int
*/
protected $_quality = 80;
Đó là giá trị này - cần đặt thành 95.
Điều này sẽ làm giảm sức nén và đồ tạo tác trong trang web.
Những người của bạn tôi sẽ giả sử phải thực hiện sửa đổi này với ghi đè mã được triển khai phù hợp - tức là không phải bằng cách sửa đổi tệp cốt lõi này. Tôi không phải là nhà phát triển magento nếu không tôi sẽ có một vết nứt ....
Các câu trả lời ở đây là IMO khá sai. Nó không phải là chất lượng mà bạn nên thay đổi tay đầu tiên , đó là kích thước của hình ảnh. Tại sao?
Điều quan trọng là khi nén một hình ảnh để có kích thước tệp nhỏ nhất có thể thì tốc độ nén là có lợi nhất trong việc đạt được mục tiêu đó. Cái thứ hai là kích thước của hình ảnh. Ngoài ra, bạn phải luôn nén hình ảnh nguồn gốc trước khi thu nhỏ nó (Tôi chưa kiểm tra cách magento xử lý việc này) để giảm kích thước tệp càng nhiều càng tốt trong khi bảo quản chi tiết.
Trên màn hình võng mạc, bạn cần gấp đôi kích thước hiển thị. Vì vậy, để có được hình ảnh sắc nét hiển thị ở 250x250 pixel, thì hình ảnh cần phải là 500x500 pixel.
Vì vậy, tôi bắt đầu với việc thay đổi chủ đề view.xml
để tăng gấp đôi kích thước được hiển thị. Nếu hình ảnh vẫn không đẹp thì tôi sẽ xem xét nâng cao cài đặt chất lượng. Nếu bạn có thời gian, bạn cũng có thể triển khai hình ảnh phản hồi (vì vậy kích thước nhân đôi chỉ được tải trên các thiết bị màn hình võng mạc ).
Bạn cũng có thể giảm kích thước bằng cách xóa tất cả dữ liệu meta khỏi hình ảnh, không chắc chắn liệu magento có làm điều đó theo mặc định hay không. Nó thường là một phần của dịch vụ nén hình ảnh tốt.