Jump to content
kikasso

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

Recommended Posts

ну может и сделано, но по факту ситуация ровно такова, какой я ее описываю.

Share this post


Link to post
Share on other sites

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

Странно

Share this post


Link to post
Share on other sites

В дополнение к предыдущему посту. При загрузке штатными средствами не все ".ок"

Я использую Image Manager +, который позволяет загружать на сервер в папку по несколько картинок

 

1. файлы переименовываются при загрузке: мои файлы называются по шаблону site-brand-model-x.jpg, где x - номер фотографии. IM+ убирает все дефисы и файл называет sitebrandmodelx.jpg

2. При аплоаде в папку на сервере файл ужимается до 500х600px и именно поэтому у меня вчера вечером после загрузки создалось ощущение, что все отлично. Конечно файл будет весить 100КБ при таких размерах, но увеличенное изображение товара все в квадратиках, т.к. движок его растягивает. 

 

По мере погружения в проблему вопросов все больше:
1. Какова практика работы с изображениями в OpenCart? Каким средствами их стоит загружать при наполнении магазина сотнями или тысячами карточек товаров? Стоит ли грузить все фото по FTP, а потом привязывать их к карточке товара, или нужно пользоваться исключительно загрузчиком изображений в карточке товара?
2. Как запретить оптимизировать фотографии при загрузке их на сервер штатно через загрузчик в карточке товара, ведь потом при помещении фотографий в кэш они оптимизируются повторно?

3. Почему движок оптимизирует фотографию, если ее размер по ширине и высоте идентичен указанному в настройках магазина?

3. 
 

Share this post


Link to post
Share on other sites

Вариант в вашем случае в контроллере /catalog/controller/product/product.php копать в  сторону $this->model_tool_image->resize , а точнее resize заменить на просто image или похожее (копать в сторону модели наверное) - только догадка

Share this post


Link to post
Share on other sites

может кто в курсе, как изменить цвет фона у измененных фоток?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Добрый день.

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

Share this post


Link to post
Share on other sites

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

Edited by Solli

Share this post


Link to post
Share on other sites

Для 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

 

Спасибо.

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

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

6xo3h.jpg

 

 

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

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

 

 

 

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

Share this post


Link to post
Share on other sites

kak?

удали все содержимое из папки image/cache , с помощю FTP или через панель хостинга

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Проблема!

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Никто не знает?

Share this post


Link to post
Share on other sites

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

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

c68838b3c791.jpg

 

 

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

4f7fbdb4acd7.jpg

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×

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.