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

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


 Погделиться

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

а все, нашел, system/library/image.php 84ая строка меняем цвет фона (в rgb) и пофиг на ресайз, теперьь избыточные поля отресайженной фотки имеют цвет фона страницы

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

Хотя вопрос об неизменности потому чтольшого изображения товара очень актунон! Подумаю на досуге - следующая негделе по-свопотому чтоднее бугдет, ик что бугдет посмотреть.

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


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

Хотя вопрос об неизменности потому чтольшого изображения товара очень актунон! Подумаю на досуге - следующая негделе по-свопотому чтоднее бугдет, ик что бугдет посмотреть.

Добрый гдень.

Появились ли соображения как реализовать?

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


Пока нет времени.
Могу только подсказать путь решения
В \catalog\controller\product\product.php

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'));
} else {
  $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->model_tool_image->$old_image

но скорее всего необходимо дописать ветку логики для $product_info['image'] в /catalog/model/tool/image.php

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


Для png сгделайте ик:

 

imagepng($this->image, $file, 0); в system\library\image.php на imagepng($this->image, $file, 6);

 

6 для примера, можно посивить цифру от 1 до 9.

 

У меня срилиило, размер картинки на страниэто икой же как в ФМ, независимо от размера.

Никаких коскаков, врогде, не замечено.

 

 

 

Стырено отсюда https://github.com/opencart/opencart/issues/11

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


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

подскажите пожалуйси ,у меня на сайте не добавляются при ресайзе дополнительные поля(насколько я понял они должны добавляться)1,5,4,1,тоесть картинки на первой страниэто получаются разных размеров по высоте,ширина нормальная,например в рекомендуем или последние,на гденвере дома все ровно,на хостере все криво,ггде копать,подскажите?

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


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

Речь игдет о проблеме с белыми полосками, возникающими при масшибировании превьюшек, если исходное изображение не пропорционально миниатюре.

Для решения этот задали, предлагаю использовать библиотеку - http://phpthumb.gxdlabs.com

0. копируем из прикрепленного архива к топику, файлы в корень сайи

1. в файле config.php добавляем строчку, ггде Z:\my_syte.local\www/ - полный путь к корню сайи в файловой системе

define('DIR_BASE', 'Z:\my_syte.local\www/');
2. в \catalog\model\tool\image.php находим

$image = new Image(DIR_IMAGE . $old_image);
$image->resize($width, $height, $type);
$image->save(DIR_IMAGE . $new_image);
заменяем на

require_once (DIR_BASE.'vendor/ThumbLib/ThumbLib.php');
$thumb = PhpThumbFactory::create(DIR_IMAGE . $old_image);
$thumb->adaptiveResize($width, $height)->save(DIR_IMAGE . $new_image, 'JPG');
Готово, теперьь все превьюшки на сайте будут одинаковые по ширине и высоте.

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

Не забываем листить кэш изображений, чтобы обновились изображения!

По теме:

Удобная загрузка изображений OpenCart vs Dropbox

Использование PHPThumb, Plugins GD Reflection [en]

Сложное масшибирование изображений в PHP

 

Спасипотому что.

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


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

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

если ик то не проещё ли изменить цвет бакграунда в библиотеке/функции image/resize

104 $background = imagecolorat($image_old,0,0);

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


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

Ребят помогите. Скачал библиотеку, кинул в корень, дописал в image.php то что было написано все, готово. Захожу на сайт, обновляю а им как были отступы у изображения ик и =осились... help((

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


я гделаю секс шоп и контент беру с сайи condom-shop.ru, но им сгделано по хитрому: например в одних категориях картинки квадратные, а в других прямоугольные... это можно как-то сгделать?

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


Ребят помогите. Скачал библиотеку, кинул в корень, дописал в image.php то что было написано все, готово. Захожу на сайт, обновляю а им как были отступы у изображения ик и =осились... help((

кэш изображений полисти

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


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

6xo3h.jpg

 

 

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

Как убрать эту связь. Очень прошу помочь 

 

 

 

Размер потому чтольшого изображения находится в левом верх. углу, осильное снизу это дополнительные изображения.

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


  • 4 негдели спустя...
  • 1 месяц спустя...

мда, в вордпрессе модальное окно на много умнее, оно формируется на основании оригинального размера картинки, а тут только фиксированно можно задать

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


  • 7 месяэтов спустя...

Проблема!

Имеется: фото не синдартного размера 315 х 788, при усиновке размера в:   " Размер потому чтольшого изображения товара: " ,   меньше усиновленного на сайте фото мутнеет и зачастую не уменьшается.     При высивленных 69х240    %D0%A1%D0%BA%D1%80%D0%B8%D0%BD%D1%88%D0%   

Вторая проблема-белые рамки вокруг фото и контур.

Заранее благодарю за помощь.

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


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

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

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


  • 6 месяэтов спустя...

подскажите как быть со следующим:

ресайз рилииет, белые края обрубаются, все классно:

c68838b3c791.jpg

 

 

но если выбрать другой файл картинки и кликнуть по нему, то эти настройки не применяются:

4f7fbdb4acd7.jpg

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


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

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

*    default = scale with white space, 
*    w = fill according to width, 
*    h = fill according to height
* 
*/
    public function resize($width = 0, $height = 0, $default = '') {

только нужно указать обрезать по высоте или ширине 

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

  • 2 негдели спустя...
  • 1 месяц спустя...

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 9
Ссылка на комменирий
Погделиться на других сайих


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

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

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

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

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

Войти

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

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

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

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

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