Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

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


Recommended Posts

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

Link to post
Share on other sites

1 час назад, Pirks сказал:

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

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

Link to post
Share on other sites
10 часов назад, Gaziz сказал:

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

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

Screenshot_1.jpg

Edited by Pirks
Link to post
Share on other sites

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

Link to post
Share on other sites

12 часов назад, lexxkrt сказал:

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

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

Link to post
Share on other sites

4 минуты назад, Pirks сказал:

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

 

Link to post
Share on other sites

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

Link to post
Share on other sites

17 минут назад, Pirks сказал:

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

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

Link to post
Share on other sites
В 07.09.2018 в 11:21, anboza сказал:

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

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

Link to post
Share on other sites

  • 2 weeks later...

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

 

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

$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;
  }

 

Link to post
Share on other sites

В 21.09.2018 в 23:03, lexxkrt сказал:

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

 

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

$image->trim();

 

 

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

Link to post
Share on other sites

13 hours ago, Pirks said:

 

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

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

Link to post
Share on other sites

  • 2 weeks later...
3 часа назад, lexxkrt сказал:

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

autocrop.ocmod.zip

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

Link to post
Share on other sites

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

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

 

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

 

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

Здесь используется именно интеллектуальный подход, а не просто банальный 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/

 

 

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

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

 

Link to post
Share on other sites
8 часов назад, sitecreator сказал:

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

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

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

 

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

 

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

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

Link to post
Share on other sites

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-а загружает").  Я же, столкнувшись с реальностью,  и этот момент тоже учел.

 

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

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

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.