Jump to content
Sign in to follow this  
Truth_Explorer

Ресайз оригинала и размеры кэш картинок

Recommended Posts

Здравствуйте.

 

Много прочитано про данную проблему, но мой вопрос немного расходится с созданными темами. Объясню на примере и покажу скриншот.

 

В настройках темы задан размер изображения товаров. Максимальный размер указал 650 * 650. Создал картинку с размером 650*650, "прокачал" её через оптимизацию, сжал. В итоге получилось ~40 Кб. Что ж, отправляем её к товару.

 

Создались уменьшенные копии этого изображения в кэше для других размеров. Посмотрел я эти размеры :huh:

 

b2JSssdhTLeQq8jg4FMAQg.jpeg

 

В итоге, моё оптимизированное изображение размером 650*650 при размере в 400 весит больше оригинала.

 

Совершенно никуда не годится. А размер в 228 чуть уступает оригиналу.

 

Как оптимизировать ресайз изображений, чтобы опенкарт не брался за пережатие своими алгоритмами?

 

Буду благодарен за содержательные мнения и решения.

 

С уважением.

Edited by Truth_Explorer

Share this post


Link to post
Share on other sites

system/library/image.php

	
public function save($file, $quality = 90)

качество картинок, по умолчанию 90%. Уменьшите - уменьшится размер... и качество)

Share this post


Link to post
Share on other sites

Если вы сами создаете изображения с нужным размером и оптимизацией, то можно вообще убрать ресайз и выводить на страницу сразу оригинал.

Share this post


Link to post
Share on other sites
55 минут назад, Shureg сказал:

system/library/image.php

	
public function save($file, $quality = 90)

качество картинок, по умолчанию 90%. Уменьшите - уменьшится размер... и качество)

 

Вы не внимательно прочитали тему. Дело не в качестве сейчас, а в размере уменьшенных автоматически в кэше изображений оригинала. От изменений 80 или 100 проблема не сдвигается с места.

 

Проблема в том, что при ресайзе размер изображения оригинального становится меньше, а "весит" больше.

Edited by Truth_Explorer

Share this post


Link to post
Share on other sites
15 минут назад, gavi сказал:

Если вы сами создаете изображения с нужным размером и оптимизацией, то можно вообще убрать ресайз и выводить на страницу сразу оригинал.

 

буду благодарен за правильное решение. Это необходимо будет сделать в model/tool/image.php как я понимаю...

Edited by Truth_Explorer

Share this post


Link to post
Share on other sites
4 минуты назад, Truth_Explorer сказал:

Вы не внимательно прочитали тему. Дело не в качестве сейчас, а в размере уменьшенных автоматически в кэше изображений оригинала

 

Все правильно вам указали. И внимательно прочитали, не вы первый с проблемой сталкиваетесь. Решения еще есть, но с серверной стороны нужны работы. Вам предложили самое простое решение на 5 минут. Замените 90 процентное сжатие на 80..75 и получите нормальные размеры, но качество...

Share this post


Link to post
Share on other sites

Truth_Explorer, Да тут известная проблема я очень долго искал решение данной проблемы но УВЫ простого решения я не нашел. 
просто так средствами PHP нельзя оптимизировать картинку. Тут я нашел 2 выхода

1) Подключения платного модуля оптимизация по API который будет оптимизировать вашы картинки (есть проблема во времени создании кешированой картинки)

2) Если же у вас VPS/VDS тогда вы можете установить консольные утилиты и интегрировать с ними PHP скрипт.

Share this post


Link to post
Share on other sites

Если vps/vds, то проблема решаема подключением и настройкой imagick

Share this post


Link to post
Share on other sites

Коллеги, благодарю всех отписавших.

Я хочу на данном этапе (в качестве эксперимента) сделать таким образом. По сути, моя задача сводится к тому, чтобы не создавались картинки ресайзов в кэш, а применялись только оригинальные размеры картинок.

 

Я себе это представляю следующим образом: в соответствующих разделах (карточка товара, производители, логотипы и т.д.) подставлялись не уменьшенные варианты картинок, а единственная с указанием атрибутов width и height.

 

Это обдуманное и взвешенное решение, т.к. каждое изображение я обрабатываю самостоятельно, мол, кто-то сможет возразить, что кэш нужен, т.к. большие картинки вставлять (допустим) в обёртку width:100px height:100px - это моветон. Но я повторю, что это осознанный шаг.

 

Поэтому, резюмируя, задача такая:

я создаю единственное изображение, и на ресурс в нужных разделах подставляется именно она одна с атрибутами высота/ширина. Я хочу исключить картинка-200x200.jpg / картинка-100x100.jpg и т.д.

 

Есть ли у кого решение в данном направлении либо мысли?

 

Благодарю. 

Share this post


Link to post
Share on other sites

Заменяйте во всех контроллерах ресайз на само изображение, какие тут еще соображения могут быть?

Например, в product.php

			if ($product_info['image']) {
				$data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get($this->config->get('config_theme') . '_image_popup_width'), $this->config->get($this->config->get('config_theme') . '_image_popup_height'));
			} else {
				$data['popup'] = '';
			}

станет

			if ($product_info['image']) {
				$data['popup'] = $product_info['image'];
			} else {
				$data['popup'] = '';
			}

и так далее..

Ломать  - не строить :D

ЗЫ: Это если размеры в шаблоне будете жестко задавать. Иначе еще их передать надо будет в шаблон и там, соответственно, подставить атрибутами, что-то типа

$data['image_popup_width'] = $this->config->get($this->config->get('config_theme') . '_image_popup_width'); 
$data['image_popup_height'] = $this->config->get($this->config->get('config_theme') . '_image_popup_height');

 

Edited by Shureg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.