Просмотр полной версии : Программная деформация растровых изображений
koIIImarik
19.10.2009, 15:23
Здравствуйте.
Не очень уверен, что создавать этот вопрос нужно во флейме, поэтому за ранее извиняюсь.
Суть вопроса:
Есть сайт, looklet.com, который позволяет создавать луки людей (человек + одежда). Тут можно выбирать разные сочетания одежд, но нас, на данный момент, интересует сочетание различных топов с джинсами/шортами. Там есть вомзожность «заправить» одежду и «не заправлять», в зависимости от выбранного пункта вид одежды немного поменяется. Пожалуйста, обратите внимание на изгиб одежды справа.
http://dl.getdropbox.com/u/1474897/looklet_shot.jpg
Ссылки на луки:
http://looklet.com/#/clothes&designers=[84]//{%22v%22:0.7,%22view%22:%22f%22,%22bg%22:0,%22slot%22:[5043,3663,652,303],%22m%22:37,%22p%22:1}
http://looklet.com/#/clothes&tags=[[34,35,36,295,306,37,296]]&offset=16//{%22v%22:0.7,%22view%22:%22f%22,%22bg%22:0,%22slot%22:[5043,3663,4076],%22m%22:37,%22p%22:1}
Работодатель говорит о том, что изображения одежды формируется программно Flash'ем из 1 базисной картинки. Я не очень уверен в этом, и думаю, что разные изображения подготавливаются перед началом работы в граф.редакторах.
Убеждения заказчика в некотором роде подкрепляются тем, что джинсы и шорты есть с разной высотой талии. И в большинстве случаев верхняя одежда граммотно подстраивается под низ, и содаётся впечатление «заправленности».
Мои убеждения, подтверждаются тем, что я всего на сайте смог найти 2 или 3 вида низа с разной высотой талий + по первой ссылке видно, что слева верх не совсем «попадает» в шорты.
Вопрос:
Хотелось бы узнать, существуют ли в Flash способы программного деформирования изображения таким образом, чтобы в результате можно было добиться подобных изменений фотографий (плавное и почти не заметное изменение формы).
Предполагаю, что если такие способы есть, то они должны работать с помощью кривых Безье.
Буду рад любой помощи.
За ранее спасибо.
Там на сайте просто разные фотки. А вообще - DisplacementMapFilter.
Волгоградец
19.10.2009, 15:48
Соглашусь с уважаемым wvxvw. Делается через DisplacementMapFilter. Думаю там так и сделано, т.к. фотки не разные.
скорее всего есть несколько дискретных уровней талии, на которые все фотки и заточены, т.е. я думаю что фотки разные
koIIImarik
19.10.2009, 19:55
Спасибо всем за ответы, я, как уже писал выше, склонен думать, что это сделано не программно, а просто подгоном разных фотографий друг к другу, но конечно возможно, что я ошибаюсь.
2 Волгоградец: На мой взгляд тут разные фотки, хотя кто его знает, кто знает.
Anton Riot
23.10.2009, 01:52
по-моему, там просто из изображения вырезается нужная часть. Это видно из ваших ссылок.
Конечно, фото обрезаны - у девушки с фото, где топ заправлен, на топе видно большую вертикальную складку, которая имеется на расправленном топе. В жизни такой складки при заправленном топе не осталось бы. Дизайнеры - лентяи и бракоделы.
Автор, постарайтесь избежать таких косяков.
koIIImarik
23.10.2009, 02:10
Спасибо за ещё одно подтверждение моей «догадки», но работодатель настаивает на том, что это делалось программно.
2 mooncar: Этот сайт — пример хорошего дизайна + люди, которые хотя бы немного понимают в разработке программ и сайтов, поймут какой огромный объём работы там проделан. Называть дизайнеров этого сайта лентяями и бракоделами, мягко говоря, не правильно, на мой взгляд.
Anton Riot
23.10.2009, 03:32
koIIImarik, это не догадка, это так и есть. Тем не менее,- это делается "программно". Программно вырезается нужная для показа часть элемента из шаблона. Это вам сделать и надо. Если работодатель не видит этого,- значит, он и не увидит разницы в результате такой процедуры.
mooncar, выделение таких мелочей неоправданно повышает стоимость и время разработки, и мы оба это понимаем:)
koIIImarik
23.10.2009, 03:40
2 Anton Riot: Посмотрите на изменение изгиба, которое я отметил на скриншоте. Это не одна и та же картинка, из которой вырезается нужная часть для показа, это 2 разные картинки или 1 картинка, которая программно деформируется (читай меняет форму, но никак не вырезается).
Тут два варианта. Либо кто-то будет сидеть и готовить два изображения, что даст гарантию правильного результата, но также немного увеличит трудозатраты (немного, потому что первое изображение тоже кто-то готовит); либо программная деформация через displacement map для разных уровней талии, но за меньшие трудозатраты не будет гарантии правильного результата для любых изображений. Вашему заказчику надо решить, что ему больше подходит из этих вариантов, а не гадать, какой вариант подошёл другим.
koIIImarik
23.10.2009, 04:10
Мы обсуждали именно вопрос, как это сделано. Заказчик сказал, что программная деформация изображения и сказал, что у него есть прототип, подозреваю, что displacement map для него будет ближе.
Кстати говоря, фотографий нужно будет готовить не 2, а немного больше, в зависимости от разных высот талии. Как я уже писал, на мой взгляд здесь есть разделение вещей по высоте талии, думаю, что таких уровней всего около 2-3.
блин, предположите, что у вас в каталоге одни всего брюки и одна рубашка. рисуете для единственных брюк маску (это я не к тому, что брюки надо маскИровать, а к тому, что данным штанам соответствует конкретная маска). если рубашку надо заправлять, маскИруете её маской от ваших штанов. появились вторые штаны - нарисовали им вторую маску. после того, как вы наберёте 10 масок (подозреваю, что даже меньше) больше новых рисовать не придётся, уже из имеющихся сумеете что-то подобрать. нестыковки на талии в примерах как раз из-за того, что набор имеющихся масок был недостаточен для новых штанов, а новую маску добавить было либо лень, либо исполнитель попросту не знал, как это сделать.
Волгоградец
23.10.2009, 11:15
Я судил по передаваемым параметрам - за рубашку отвечает один-единственный параметр, который не меняется при смене штанов, юбок. Конечно это возможно ссылка на один класс, где представлены все возможные варианты рубашек. Но это не рационально. Если реализовывать через дисплейсмент, то достаточно всего одной карты смещений.
koIIImarik, и все таки, присмотритесь - там, где вы отметили - лишний кусок отрезан. Это то же самое изображение рубашки.
koIIImarik
23.10.2009, 12:36
2 mooncar: Для меня чётко видно, что линия изгиба, которую я отметил не обрезается, а именно меняется, что говорит нам о том, что это не может быть маской (я говорю о белой линии на которую указана стрелка на 1-м слайде). Вы можете считать как хотите.
Anton Riot
23.10.2009, 23:12
mooncar +1
mooncar, Anton Riot, вы не правы, изображение действительно не обрезано, а деформировано.
koIIImarik
24.10.2009, 01:16
2 VVall: Спасибо =) Там по нижней дуге так же заметно, что это деформация.
Убедили. Но сделано плохо. По-моему, дизайнер просто небрежно подготовил второе фото, обрезав низ и трансформировав нижний край обреза в Photoshop. Ужасная вертикальная черная складка выглядит совершенно неуместной при заткнутом топе. Как будто у человека от подмышки до штанины бревнышко припрятано под рубашкой. А штанина уже плоская. Брр.. ИМХО, сложно будет убедительные складки программно организовать. Или можно, но неоправданно сложно. К тому же разная ткань может по разному деформироваться.
Лучше уж по два изображения на каждый топ - либо второе качественно подготовленное в Photoshop, либо снимок с натуры.
koIIImarik
24.10.2009, 01:49
2 mooncar: На мой взгляд тут и используются 2 фотки.
используется только одна фотка, проверял с помощью кэша, деформация ведётся по точкам у каждой одежды есть данные y,x координат где они расположены и координаты главных точек например у джинсов, и то что находится ниже уровня подгоняется под эти точки
petrochenko1981
25.05.2011, 02:49
http://blog.swishzone.com/?p=6458 - похоzе это как-то так dелается,
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.