Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

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


Recommended Posts

  • 1 month later...

Финалочка,

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

 

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" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

Edited by IvanKK
  • +1 2
Link to comment
Share on other sites


  • 4 weeks later...
  • 1 month later...
В 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. Потом надо поиграть с размерами картинок в модулях, категории и карточки товара, чтобы выбрать оптимальный размер

Edited by delete
добавление
Link to comment
Share on other sites


В 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" в коде дано условно, можно заменить его на другое. Также код будет срабатывать и при установки этого значения у других изображений в шаблоне.

 

 

Вот этот? 

Link to comment
Share on other sites


  • 1 month later...

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

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

В категории товаров карточка товара первая  выводится 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>';

 

Edited by KIRKIRKIR
Link to comment
Share on other sites


  • 11 months later...
В 21.05.2013 в 02:02, Chenom0r сказал:

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


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

 

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

Link to comment
Share on other sites


  • 6 months later...
В 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
Link to comment
Share on other sites


  • 4 weeks later...
В 24.04.2017 в 10:16, luzhkov77 сказал:

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

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

Link to comment
Share on other sites


  • 3 weeks later...
  • 2 years later...

Для 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);
            }

 

Edited by buslikdrev
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

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.