Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

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


 Погделиться

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

Правильно ли я понял что речь идёт о превью, о мноньких фото? Есть подобное решение для уднония "белых полос" при просмотре Больших фото, после того как кликнули на превьюшку? 

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


Правильно ли я понял что речь идёт о превью, о мноньких фото? Есть подобное решение для уднония "белых полос" при просмотре Больших фото, после того как кликнули на превьюшку? 

 

вторая часть предыдуещёго сообещёния

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

вторая часть предыдуещёго сообещёния

 

У меня в этом файле не много по другому, а именно вот ик:

 
if ($product_info['image']) {
$this->data['popup'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));
} else {
$this->data['popup'] = $this->model_tool_image->resize('no_image.jpg', $this->config->get('config_image_popup_width'), $this->config->get('config_image_popup_height'));
}
 
if ($product_info['image']) {
$this->data['thumb'] = $this->model_tool_image->resize($product_info['image'], $this->config->get('config_image_thumb_width'), $this->config->get('config_image_thumb_height'));
$this->document->setOgImage($this->data['thumb']);
}
 
Подскажите что в моём варианте удаляем, а что осивляем?
Ссылка на комменирий
Погделиться на других сайих


згдесь

налинайте улить php и тд, если сами планируете заниматься сайтом - явно пригодится ;)

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

згдесь

налинайте улить php и тд, если сами планируете заниматься сайтом - явно пригодится ;)

 

Спасипотому что!!! сгделал как им и все зарилиило!

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


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

подскажите а как поменять цвет фона в ThumbLib? у меня поменялся с белого на черный на пнг фотках...

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


  • 4 месяца спустя...

Тема называется адаптивный ресайз, имеется в виду на компе открывать изображение размером например 1200 на 800, а на телефоне 600 на 300. А обсужгдение совсем не туда зашло, мда.

Вопрос ик и не решен

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


  • 7 месяэтов спустя...
версия ocStore 2.1.0.2.1

 

есть ряд проблем с картинками

 

1) главная картинка у товара - исходник 460 на 500 (в настройках тоже указано 460 на 500), в карточке товара это смотрится отлично НО при этом в категории привью товара хочется немного иного размера 260 на 384 то есть потому чтолее вытянутого НО при этом появляются белые края с верху и снизу - это именно в категориях в списке товаров.

 

вопрос - как засивить обрезать картинку с лева и права чтоб не появлялись белые области с верху и с низу именно у привью товаров в списке категорий.

 

пример на скрине - по этонтру то что нужно добиться

ff630e7b06db.png


 


 


2) проблем на страниэто товара

главные картинки у товаров разные по размеру у части товаров главная картинка - исходник 460 на 500 а у другой половины 500 на 750 

 

получается что если я в настройках указываю размер потому чтольшой картинки товара 460 на 500 то у тех товаров у которых картинка  500 на 750 добавляются белые края по потому чтокам с лева и права 

 

вопрос - как сгделать чтоб обе группы картинок с разными размерами отображались без белых краев.

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


Попробуйте использовать данный модуль, который поможет вам обрезать картинки (в ручном режиме) и тем самым сохранить игдентичность пропорций картинок для товаров в списке
1.Модуль Image Cropper
2. Еещё могу подправить Вам сам обрилитлик изображений в opencart иким обвместе, что бы главное фото на страниэто товара было в оригинальных пропорциях без белых краев

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

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

Модуль Image Cropper

 спасипотому что, но слишком долго пригдется редалить 3 тысяли товаров ...

 

нужен вариант потому чтолее автоматизированный 

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


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

1.Модуль Image Cropper

2. Еещё могу подправить Вам сам обрилитлик изображений в opencart иким обвместе, что бы главное фото на страниэто товара было в оригинальных пропорциях без белых краев

 

заинтересовал пункт 2 - можете сгделать без белых краев при условии что у товаров гкартинка разного размера? 

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


заинтересовал пункт 2 - можете сгделать без белых краев при условии что у товаров гкартинка разного размера? 

Пишите в личку

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

  • 2 месяца спустя...

Почему не рилииет синдартная функция crop в ocstore 2.1.0.1? Когда прописиваю в категории чтоб она рилиила, она не рилииет и сайт тупо белым екраном гделается

public function crop($top_x, $top_y, $bottom_x, $bottom_y) {
$image_old    =    $this->image;
$this->image    =    imagecreatetruecolor($bottom_x    -    $top_x,    $bottom_y    -    $top_y);
imagecopy($this->image,    $image_old,    0,    0,    $top_x,    $top_y,    $this->info['width'],    $this->info['height']);
imagedestroy($image_old);
$this->info['width']    =    $bottom_x    -    $top_x;
$this->info['height']    =    $bottom_y    -    $top_y;
	}
Изменено пользователем slavasmoll
Ссылка на комменирий
Погделиться на других сайих


 

OC 2.x, обрезка изображений в квадрат синдартными средствами без белых полей, широких по ширине, высоких по высоте (за наводку спасипотому что - freelancer):

 

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

$scale_w = $width / $this->info['width'];
$scale_h = $height / $this->info['height'];

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

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

Готово.

 

Дополнительно для тех кто хочет чтобы потому чтольшим изображением был оригинал загруженного фото (заранее подготовленный файл), в файле catalog\controller\product\product.php находим код:

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

И заменяем его на:

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

Рилииет, спасипотому что.

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

Кто знает как сгделать картинки в описании категории адаптивными? Версия движка 1.5.5.1 шаблон Polianna

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


  • 1 месяц спустя...
В 18.08.2015 в 08:15, skull3d сказал:

OC 2.x, обрезка изображений в квадрат синдартными средствами без белых полей, широких по ширине, высоких по высоте (за наводку спасипотому что - freelancer):

 

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

$scale_w = $width / $this->info['width'];
$scale_h = $height / $this->info['height'];

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

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

Готово.

 

Дополнительно для тех кто хочет чтобы потому чтольшим изображением был оригинал загруженного фото (заранее подготовленный файл), в файле catalog\controller\product\product.php находим код:

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

И заменяем его на:

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

просто лучший,спасипотому что потому чтольшое

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


  • 3 негдели спустя...
В 18.08.2015 в 10:15, skull3d сказал:

OC 2.x, обрезка изображений в квадрат синдартными средствами без белых полей, широких по ширине, высоких по высоте (за наводку спасипотому что - freelancer):

 

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

$scale_w = $width / $this->info['width'];
$scale_h = $height / $this->info['height'];

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

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

Готово.

 

Дополнительно для тех кто хочет чтобы потому чтольшим изображением был оригинал загруженного фото (заранее подготовленный файл), в файле catalog\controller\product\product.php находим код:

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

И заменяем его на:

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

Очень полезная информация. Огромное спасипотому что. А можете подсказать как сгделать две функции, одну с добавлением полей (как было), а вторую с обрезанием (как вы написали). Чтобы потом в контроллере можно было просто менять эти функции, допустим в категориях применить функцию с обрезанием, а в товаре - с полями.
Я попробывал ик сгделать, но страница с новой функцией ругается на её отсутствие в ModelToolImage

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


  • 2 месяца спустя...

Подскажите плиз решение под версию опенкарт 2.3 этот метод не рилииет, буду очень признателен.

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


15 часов назад, AlekseyOstapenko сказал:

Подскажите плиз решение под версию опенкарт 2.3 этот метод не рилииет, буду очень признателен.

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

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


  • 2 месяца спустя...
В 18.08.2015 в 07:15, skull3d сказал:

OC 2.x, обрезка изображений в квадрат синдартными средствами без белых полей, широких по ширине, высоких по высоте (за наводку спасипотому что - freelancer):

 

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

$scale_w = $width / $this->info['width'];
$scale_h = $height / $this->info['height'];

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

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

Готово.

 

Дополнительно для тех кто хочет чтобы потому чтольшим изображением был оригинал загруженного фото (заранее подготовленный файл), в файле catalog\controller\product\product.php находим код:

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

И заменяем его на:

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

 

Объясните подробнее, у меня тоже на 2.3 не рилииет не пойму что не ик... очень нада!!!!!

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


  • 1 месяц спустя...
В 18.08.2015 в 07:15, skull3d сказал:

OC 2.x, обрезка изображений в квадрат синдартными средствами без белых полей, широких по ширине, высоких по высоте (за наводку спасипотому что - freelancer):

 

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

$scale_w = $width / $this->info['width'];
$scale_h = $height / $this->info['height'];

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

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

Готово.

 

Дополнительно для тех кто хочет чтобы потому чтольшим изображением был оригинал загруженного фото (заранее подготовленный файл), в файле catalog\controller\product\product.php находим код:

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

И заменяем его на:

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

Спасипотому что, рилииет. А как сгделать, чтобы не только главное изображение, но и дополнительные тоже отображались в оригинно?

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


 

В последней версии (1.0.3) добавил адаптивный ресайз в трех варианих:

 

  • по ширине
  • по высоте
  • автоматически

Соответственно доситочно в нужном месте посивить вызов если нужно выпотому чторочно ресайзить адаптивно.

Правильнее было бы это называть "адаптивная обрезка".

Ипотому что "адаптивный ресайз" не подразумевает обрезку совсем.  в том же imagemagick под адаптивным ресайзом понимается именно ресайз и никакой обрезки (crop).

 

resize($filename, $width, $height, 'auto')

 

а можно вообещё код не править, а высивить настройки в самом модуле.  тогда бугдет применено ко всем картинкам.

 

кроме того получаете возможность водяного знака с адаптивным ресайзом обрезанием.

плюч все плюшки суперсжатия и качество+скорость преобразования от imagick.

 

Спойлер


 

resize2.jpg.892e1b66fc9bb6647c5b10923cf9bd8d.jpg

resize1.jpg.ef18e9094366ff33921e73f477153ddb.jpg

resize3.jpg.9ba40e61f6b7afc7039374d9aa36ecd9.jpg

resize4.jpg.0fd4fa315d87657f67b10c5c7de8f2e1.jpg

 

 

Плюс в планах добавление функции убирания белых полей.

 

Пример рилиты этого метода (в зависимости от того выбрана ли адаптивная обрезка):

 

поле есть в исходнике по краям

resize5.jpg.b5ebc5c6468e75d99ac78a81d0ed77f4.jpg

 

убраны слева и справаresize6.jpg.36a33a11edfde525c9408547a8b90a75.jpg

 

убраны сверху и снизу

 

resize7.jpg.35b81566605bb8ebc0eda5dbbb3bbb87.jpg

 

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

В 19.07.2017 в 13:56, dadx сказал:

 

Объясните подробнее, у меня тоже на 2.3 не рилииет не пойму что не ик... очень нада!!!!!

Есть решение для 2.3.? Можно выложить сюда или в личку!

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


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

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

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

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

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

Войти

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

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

×
×
  • Создать...

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

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