Перейти к публикации
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...

Адаптивный resize изображений [решено]


 Поделиться

Рекомендованные сообщения

  • 1 месяц спустя...

Финалочка,

Для тех кто хочет, чтобы большие изображения сжимались только по высоте, а по краям автоматически с сохранением пропорции картинки.

 

system\library\image.php (находим в - public function resize):

		$xpos = 0;
		$ypos = 0;
		$scale = 1;

Ниже этих строк вставляем:

		if ($width == 1000) {
		$new_width = ($this->width * 1)/(($this->height * 1) / $height);
		$width = ($this->width * 1)/(($this->height * 1) / $height);
		}	

Ну и для красивого обрезания в миниатюрах и др. добавляем код от предыдущего оратора в этом же файле, для версии 2.3 после строк :

		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

Вставляем:

        $default = 'w';
        if ($scale_h > $scale_w) {
            $default = 'h';
        }

 

Далее заходим в админку > модули > шаблоны > Ваш шаблон   и выставляем ширину у Всплывающих изображений "  1000  "  на этом все! Заливаем фотки и наслаждаемся нормальной галереей без обрезов.

 

пс. Значение "1000" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

Изменено пользователем IvanKK
  • +1 2
Ссылка на комментарий
Поделиться на других сайтах


  • 4 недели спустя...

Никак не пойму куда рыть.

Изображения не видно целиком. На оригинале дожна быть девушка в платье, а видно только кусок от платья.

screenshot-xn----8sbnbhvdcdwbah1c.xn--p1ai-2018.02.07-19-55-53.png

Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...
В 17.01.2018 в 10:59, IvanKK сказал:

Финалочка,

Для тех кто хочет, чтобы большие изображения сжимались только по высоте, а по краям автоматически с сохранением пропорции картинки.

 

system\library\image.php (находим в - public function resize):


		$xpos = 0;
		$ypos = 0;
		$scale = 1;

Ниже этих строк вставляем:


		if ($width == 1000) {
		$new_width = ($this->width * 1)/(($this->height * 1) / $height);
		$width = ($this->width * 1)/(($this->height * 1) / $height);
		}	

Ну и для красивого обрезания в миниатюрах и др. добавляем код от предыдущего оратора в этом же файле, для версии 2.3 после строк :


		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

Вставляем:


        $default = 'w';
        if ($scale_h > $scale_w) {
            $default = 'h';
        }

 

Далее заходим в админку > модули > шаблоны > Ваш шаблон   и выставляем ширину у Всплывающих изображений "  1000  "  на этом все! Заливаем фотки и наслаждаемся нормальной галереей без обрезов.

 

пс. Значение "1000" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

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

Изменено пользователем delete
добавление
Ссылка на комментарий
Поделиться на других сайтах


В 08.02.2018 в 14:01, matroskat сказал:

Никак не пойму куда рыть.

Изображения не видно целиком. На оригинале дожна быть девушка в платье, а видно только кусок от платья.

screenshot-xn----8sbnbhvdcdwbah1c.xn--p1ai-2018.02.07-19-55-53.png

Ты какой метод использовал? 

 

В 17.01.2018 в 10:59, IvanKK сказал:

Финалочка,

Для тех кто хочет, чтобы большие изображения сжимались только по высоте, а по краям автоматически с сохранением пропорции картинки.

 

system\library\image.php (находим в - public function resize):


		$xpos = 0;
		$ypos = 0;
		$scale = 1;

Ниже этих строк вставляем:


		if ($width == 1000) {
		$new_width = ($this->width * 1)/(($this->height * 1) / $height);
		$width = ($this->width * 1)/(($this->height * 1) / $height);
		}	

Ну и для красивого обрезания в миниатюрах и др. добавляем код от предыдущего оратора в этом же файле, для версии 2.3 после строк :


		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

Вставляем:


        $default = 'w';
        if ($scale_h > $scale_w) {
            $default = 'h';
        }

 

Далее заходим в админку > модули > шаблоны > Ваш шаблон   и выставляем ширину у Всплывающих изображений "  1000  "  на этом все! Заливаем фотки и наслаждаемся нормальной галереей без обрезов.

 

пс. Значение "1000" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

Вот этот? 

Ссылка на комментарий
Поделиться на других сайтах


  • 1 месяц спустя...

Здравствуйте, помогите решить проблему, уже мозг себе весь сломал.

Вывод изображений товаров в категории:

В категории товаров карточка товара первая  выводится 68*68 - при этом как отсутствующая, 

также подгружает изображения из папки:

ДОМЕН/image/cache/catalog/category/product

1. Выводит уменьшенное изображение 68*68 первым

2. Выводит ALT 

Нужно выводить изначальное изображение и скрыть alt

если я правильно понимаю это правится в контроллере

Помогите пожалуйста!!

 

https://om-ek.ru/product/kabel-i-provod

screenshot-om-ek.ru-2018.04.26-12-12-34.png

 

Предполагаю что проблема в этом куске но не совсем понимаю как его преобразовать 

if ($result['image']) {
                    if ($this->request->server['HTTPS']) {
                        $image_path = $this->config->get('config_ssl') . 'image/';
                    } else {
                        $image_path = $this->config->get('config_url') . 'image/';
                    }
        
                    $thumb_image = $this->model_tool_image->resize($result['image'], 68, 68);
                    $image = '<a class="panda-preview noborder" rel="bigPre" href="'.$image_path.$result['image'].'" title="'.$result['name'].'" style="height: 68px; font-size: 0px;"><img src="'.$thumb_image.'" alt="'.$result['name'].'" title="'.$result['name'].'"></a>';
                    $image = '<a class="noborder" rel="bigPre" href="'.$this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url).'" title="'.$result['name'].'" style="height: 68px; font-size: 0px;"><img src="'.$thumb_image.'" alt="'.$result['name'].'" /></a>';
                } else {
                    $image = '<img src="'.$this->model_tool_image->resize('placeholder.png', 68, 68).'" />';
                    $image = '<a class="noborder" rel="bigPre" href="'.$this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url).'" title="'.$result['name'].'" style="height: 68px; font-size: 0px;"><img src="'.$this->model_tool_image->resize('placeholder.png', 68, 68).'" /></a>';

 

Изменено пользователем KIRKIRKIR
Ссылка на комментарий
Поделиться на других сайтах


  • 11 месяцев спустя...
В 21.05.2013 в 02:02, Chenom0r сказал:

Буду очень признателен за помошь. Я просто извелся уже весь


чтобы вместо больших кэшированных (из папки image/cache/catalog/) изображений выводить большой оригинал (image/catalog/) в карточке товара, можно использовать модуль:

 

На ocStore 2.3.0.2.3 работает отлично! 

Ссылка на комментарий
Поделиться на других сайтах


  • 6 месяцев спустя...
В 17.01.2018 в 12:59, IvanKK сказал:

Финалочка,

Для тех кто хочет, чтобы большие изображения сжимались только по высоте, а по краям автоматически с сохранением пропорции картинки.

 

system\library\image.php (находим в - public function resize):


		$xpos = 0;
		$ypos = 0;
		$scale = 1;

Ниже этих строк вставляем:


		if ($width == 1000) {
		$new_width = ($this->width * 1)/(($this->height * 1) / $height);
		$width = ($this->width * 1)/(($this->height * 1) / $height);
		}	

Ну и для красивого обрезания в миниатюрах и др. добавляем код от предыдущего оратора в этом же файле, для версии 2.3 после строк :


		$scale_w = $width / $this->width;
		$scale_h = $height / $this->height;

Вставляем:


        $default = 'w';
        if ($scale_h > $scale_w) {
            $default = 'h';
        }

 

Далее заходим в админку > модули > шаблоны > Ваш шаблон   и выставляем ширину у Всплывающих изображений "  1000  "  на этом все! Заливаем фотки и наслаждаемся нормальной галереей без обрезов.

 

пс. Значение "1000" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

Работает и в Version 3.0.2.0 спс автору

  • +1 1
Ссылка на комментарий
Поделиться на других сайтах


  • 4 недели спустя...
В 24.04.2017 в 10:16, luzhkov77 сказал:

Как не работает? все работает, только нужно поменять переменные old_image на image_old new_image на image_new

Подскажите как новичку, где в OcStore 2.3 находятся эти переменные? 

Ссылка на комментарий
Поделиться на других сайтах


  • 3 недели спустя...

Может кому пригодится. https://***/news/adaptivniy-resaiz-izobrazheniy

По-моему именно то, что надо для удаления проблем с полями.

Изменено пользователем MaximRa
Ссылка на комментарий
Поделиться на других сайтах


  • 2 года спустя...

Для product.php

Скрытый текст
            if (is_file(DIR_IMAGE . $product_info['image'])) {
                list($width_orig, $height_orig, $image_type) = getimagesize(DIR_IMAGE . $product_info['image']);

                $this->config->set($this->config->get('config_theme') . '_image_thumb_height', $this->config->get($this->config->get('config_theme') . '_image_thumb_width') / $width_orig * $height_orig);
                $this->config->set($this->config->get('config_theme') . '_image_popup_height', $this->config->get($this->config->get('config_theme') . '_image_popup_width') / $width_orig * $height_orig);
            }

 

Изменено пользователем buslikdrev
Ссылка на комментарий
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
 Поделиться

  • Сейчас на странице   0 пользователей

    • Нет пользователей, просматривающих эту страницу.
×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.