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

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


Recommended Posts

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

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

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

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


  • 1 month later...

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

Добрый день.

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

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


Пока нет времени.
Могу только подсказать путь решения
В \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 months later...

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

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


  • 4 weeks later...

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

Для решения этой задачи, предлагаю использовать библиотеку - 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 weeks later...

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

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

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

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


  • 4 weeks later...

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

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


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

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


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

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

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


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

6xo3h.jpg

 

 

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

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

 

 

 

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

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


  • 4 weeks later...
  • 1 month later...

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

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


  • 7 months later...

Проблема!

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

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

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

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


  • 2 weeks later...

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

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


  • 6 months later...

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

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

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 weeks later...
  • 1 month later...

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


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

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

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

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

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

Вхід

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

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

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

Important Information

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