Перейти к содержанию
Pirks

Скрипт выравнивания изображений товаров

Рекомендуемые сообщения

Добрый день!
Есть изображения товаров на белом фоне, но с разным расстоянием  от изображения до границы холста. 
Даже минимальная разница, заметная на глаз, вызывает дискомфорт. 
Нужна библиотека, или пример скрипта, которые могут  работать с изображениями и различать фон от самого изображения. 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1 час назад, Pirks сказал:

Добрый день!
Есть изображения товаров на белом фоне, но с разным расстоянием  от изображения до границы холста. 
Даже минимальная разница, заметная на глаз, вызывает дискомфорт. 
Нужна библиотека, или пример скрипта, которые могут  работать с изображениями и различать фон от самого изображения. 

Ссылку дайте. Не понятно так.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, Gaziz сказал:

Ссылку дайте. Не понятно так.

Я думаю, на изображении понятно, о чем идет речь. 
Надо привести все изображения к одному размеру и отцентрировать.
Возможно есть десктопное ПО, но хочется, чтобы все на сервере обрабатывалось в фоне.   

Screenshot_1.jpg

Изменено пользователем Pirks

Поделиться сообщением


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

при создании кэша картинки делайте тримминг картинки до ресайза по цвету пикселя (1,1). единственное проблема будет если белый цвет не чисто белый

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
12 часов назад, lexxkrt сказал:

при создании кэша картинки делайте тримминг картинки до ресайза по цвету пикселя (1,1). единственное проблема будет если белый цвет не чисто белый

Я хотел бы это делать вне Open Cart,  тем более хотелось бы контролировать результат до выгрузки пользователю.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, Pirks сказал:

Я хотел бы это делать вне Open Cart,  тем более хотелось бы контролировать результат до выгрузки пользователю.

 

Поделиться сообщением


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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
17 минут назад, Pirks сказал:

надо реализовать своими скриптами.

нанимаете оператора фотошопа, он вам все картинки под "шаблон" подгоняет, загружаете и вуа-ля, никаких сторонних модулей! 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 07.09.2018 в 11:21, anboza сказал:

нанимаете оператора фотошопа, он вам все картинки под "шаблон" подгоняет, загружаете и вуа-ля, никаких сторонних модулей! 

Скрипт дешевле и надежнее оператора, особенно когда изображений ~1000 * n  )
Ну и читайте внимательно первое сообщение, речь идет о скриптах для обработки. 

Поделиться сообщением


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

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

 

куда проще добавить в код перед ресайзом

$image->trim();

 

саму функция в либу image

public function trim($pad=null){
    if($this->image){
      $image = imagecropauto($this->image, IMG_CROP_DEFAULT);
      if($image!==false){
        $this->image = $image;
        $this->info['width'] = imagesx($image);
        $this->info['height'] = imagesy($image);
      }
    }
    return $this;
  }

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 21.09.2018 в 23:03, lexxkrt сказал:

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

 

куда проще добавить в код перед ресайзом

$image->trim();

 

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
13 hours ago, Pirks said:

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, lexxkrt сказал:

модификатор для автообрезания картинок

autocrop.ocmod.zip

Спасибо, посмотрю

Поделиться сообщением


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

Все уже придумано. И продумано.

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

 

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

 

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

Здесь используется именно интеллектуальный подход, а не просто банальный trim. Нередко нужно сделать несколько итераций прежде чем будет достигнут нужный результат.

 

14507957be.jpg

 

 

 

77c3b05147.jpg

 

 

Возможностей работы с фоном довольно много.

Причем делается все автоматически. Не нужно думать, что и когда вы загрузили.

 

В 07.09.2018 в 11:03, Pirks сказал:

но в  настоящий момент надо реализовать своими скриптами.

 

Пытался логически понять, что это значит, но не смог.

Написать свой скрипт с нуля вместо готового решения за символическую стоимость?

А почему именно так "надо"?

 

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

Обычно в реальности изображения очень сильно могут отличаться от тестовых на белом фоне.

 

В 06.09.2018 в 20:02, Pirks сказал:

Возможно есть десктопное ПО

 

Есть такое. Фотошоп называется.

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

Модуль для опенкарт вам не подходит. Фотошоп тоже?

 

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

 

Для опенкарта есть все внутри этого модуля (+750 р. для плагина обрезки фона https://opencartforum.com/files/file/5408-uluchshaem-izobrazheniya-obrezka-lishnego-ishodnogo-fona-i-t-d/

 

 

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

Но фотошоп - это самый универсальный инструмент, хоть и не серверный.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, sitecreator сказал:

Пытался логически понять, что это значит, но не смог.

Написать свой скрипт с нуля вместо готового решения за символическую стоимость?

А почему именно так "надо"?

 

Не будьте столь категоричны. ) Сколько людей столько и мнений.  Сколько заказчиков, столько и требования, да, порою нерациональных )
"Реализовать своими скриптами" - это задача работающая в фоне, без интерфейса, консольная. Т.е. однажды настроенная она проверяет изображения на соответствие каким либо требованиям, если надо обрабатывает.
Про Фотошоп - спасибо, но это сложно и дорого. Есть более простые решения пакетной обработки изображений по Win.
Задача стоит чтобы все это работало на VPS, например с Ubuntu.

 

P.S. Извините конечно, но постоянно ловлю себя на мысли, что некоторые разработчики очень похожи на консультантов в магазине, как им кажется "очень не навязчиво" предлагающих свою, помощь. Без обид, но клиента надо брать мягче, чтобы в конечном итоге он думал, что он самостоятельно принял решение о приобретении модуля.  ))

P.P.S. Модуль интересный, заметно, что проделана большая работа, но в настоящий момент, в нем нет необходимости.  
 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
8 часов назад, Pirks сказал:

это задача работающая в фоне, без интерфейса, консольная.

 

Все равно непонятно.

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

 

Все работает, вы даже не знаете и не задумываетесь о том как именно (в фоне или еще как-то) работает и получаете результат. Результат, который вас устраивает.

Для меня это примерно как если бы вы обедали в ресторане и вам все нравится, но потом вы спрашиваете "а блюдо готовил рыжий повар?".  Вам отвечают, что повар у них лысый брюнет.  "Нет, нужно чтобы рыжий готовил".

 

Ваш ответ не вносит ясности. Потому как:

8 часов назад, Pirks сказал:

Т.е. однажды настроенная она проверяет изображения на соответствие каким либо требованиям, если надо обрабатывает.

 

Это относится и к моему решению тоже.

Т. е. почему именно "рыжий повар" должен готовить?

 

Кроме того у вас в вашем подходе есть большой изъян. Если результат получаете неудачный для определенного исходника, а это при использовании примитивного скрипта будет привычным делом,   то вы не сможете откатить действие назад и попробовать еще раз (с иной настройкой, например).

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

Вы никогда не будете знать попали ли картинки в кеш после обработки исходника или до нее.

 

9 часов назад, Pirks сказал:

консольная

 

Если вы планируете ее запускать вручную через shell,  то сколько же часов она будет работать при достаточном кол-ве изображений?  Или сколько суток?

При этом на все это время обработки вы рискуете полностью подвесить сервер, т. к. все мощности уйдут на работу с изображениями.

 

Я еще понимаю когда задача выполняется по cron.  Именно так у меня работает фоновое сжатие.  Но здесь уже непростой контроль возникает над тем, что уже обработано и что нуждается в обработке.   Без такого контроля задача будет невыполнимая. Работа в фоне - это не самоцель (как у вас, насколько я понял), а способ уйти от создания единовременной высокой нагрузки на процессор/память,  т. е. создание равномерной нагрузки путем ее распределения во времени на несколько суток.  Картинки при этом не создаются ни лучше, ни хуже.

 

9 часов назад, Pirks сказал:

Про Фотошоп - спасибо, но это сложно и дорого.

 

Это проще чем аналогичное реализовывать программно. Если делать самому, то почему дорого? 

 

9 часов назад, Pirks сказал:

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

 

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

 

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

 

Так было, например, с адаптивной обрезкой трех типов (w, h, auto).  Потом появился четвертый тип адаптивной обрезки. Мне его подсказал один разработчик в отзывах к модулю.  Он показал все наглядно на примере сайта как и что должно выглядеть.

 

Мне интересно реализовывать новые идеи.  Я всегда стараюсь понять насколько это может быть интересно для потенциальных заказчиков. Многие идеи при создании модуля подсказывают именно опытные заказчики.  Если я не могу уловить смысл идеи, то либо я невнимателен, либо заказчик не может донести суть.

 

9 часов назад, Pirks сказал:

Сколько заказчиков, столько и требования, да, порою нерациональных )

 

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

 

Я вам привел минусы вашего подхода (способа). Но не услышал от вас аргументов в пользу вашего выбора.

Даже если у вас всего 5000 (или даже 1000) исходных изображений, то вы рискуете подвесить сервер очень надолго.

 

Причем, если исходник приличного размера, то он один будет обрабатываться очень долго.  Там даже не квадратичная зависимость, а более крутая еще. Если, например, исходники 2000*2000,  то тушите свет.  А я встречаю последнее время 4000*3000,  6000*5000 ("жена с камеры iphone-а загружает").  Я же, столкнувшись с реальностью,  и этот момент тоже учел.

 

Повторюсь, что как коммерсант со своими услугами я к вам не обращаюсь, мне это не нужно.  Просто было любопытство "почему же именно так" нужно?  Разумеется, что вы в праве выбирать свое "нерациональное" решение только по известным вам мотивам.

Поделиться сообщением


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

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

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

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