Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

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

 

 

Змінено користувачем IvanKK
  • +1 2
Надіслати
Поділитися на інших сайтах


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

Змінено користувачем 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 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>';

 

Змінено користувачем KIRKIRKIR
Надіслати
Поділитися на інших сайтах


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

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


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

 

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

Надіслати
Поділитися на інших сайтах


  • 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
Надіслати
Поділитися на інших сайтах


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

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

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

Надіслати
Поділитися на інших сайтах


  • 3 weeks later...

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

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

Змінено користувачем MaximRa
Надіслати
Поділитися на інших сайтах


  • 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);
            }

 

Змінено користувачем buslikdrev
Надіслати
Поділитися на інших сайтах

Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.