Обтекание изображения вокруг объектов в веб-приложении - PullRequest
0 голосов
/ 01 декабря 2009

Я создаю веб-приложение в ASP.NET, например: http://www.zazzle.com/cr/design/pt-mug

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

Моим первым предположением было создать какой-то алгоритм для GDI +, который бы имитировать «обтекание» изображения вокруг объекта (на самом деле это не будет 3D-объект, это просто скриншот).

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

Итак, мое второе предположение состояло в том, чтобы реализовать что-то вроде 3D-рендерера, которому я бы дать карту изображения для какого-либо объекта, это сделало бы мне это изображение на объект и в реальном времени верните мне изображение. Это возможно? Есть ли другой путь? С чего начать?

Ответы [ 2 ]

1 голос
/ 03 декабря 2009

Если вы хотите попробовать коммерческий продукт, моя компания создает SDK для растровой обработки для .NET под названием DotImage . Если вы попробуете это, взгляните на PolygonTransform. Вы предоставляете многоугольник в виде списка точек, и класс деформирует изображение, чтобы поместиться внутри многоугольника. Если вам нужен пример кода, дайте мне знать.

0 голосов
/ 01 декабря 2009

Это может быть какой-то вид рендеринга OpenGL 3D, но для этого эффекта изображение может быть легко преобразовано в чисто двумерную форму. Горизонтально, это должно было бы быть сжато, где это идет от стороны чашки. Каждый столбец пикселей должен быть смещен по вертикали, изменяя величины в зависимости от того, какой столбец - таким образом, чтобы горизонтальная линия изображения стала подобна U-образной. При правильных параметрах такой морф может имитировать правильную трехмерную форму. К световым эффектам можно применить, осветляя / затемняя изображение немного в нужных местах.

...