2009-12-01 47 views
0

我创建在ASP.NET web应用程序像这样的: http://www.zazzle.com/cr/design/pt-mug包装图像周围物体在web应用程序

我知道该怎么做的一切,除了物体周围包裹的图像。 这将是一个简单的任务,如果我只需要在另一个上面堆叠一个图像(如果它们是平的),但如果它是圆形物体,因为这个杯子是 ,这有点棘手。我的第一个猜测是为GDI +创建某种算法,它将模拟围绕一个对象的“包装”图像(实际上它不是一个3d对象,它只是它的截图)。

我认为这将是原始的方法,它会导致质量非常差,如果我能使它工作, 。

所以,我的第二个猜测是实现一些3d渲染器,我会给 给一个物体的图像映射,它会将该图像渲染到物体上,并实时返回给我渲染的图像。这是可行的吗? 还有别的办法吗?我从哪说起呢?

回答

1

如果您愿意尝试商业产品,我公司将为.NET创建一个名为DotImage的光栅处理SDK。如果你尝试它,看看PolygonTransform。您提供了一个多边形作为点的列表,并且该类会扭曲图像以适应多边形的内部。如果您需要示例代码,请告诉我。

+0

非常感谢。我会研究它,让你知道:) – ttkalec 2009-12-03 17:29:24

+0

我看了一下你的软件,我还没有找到这个PolygonTransform函数。我也在Atalsoft网站上查看过文档,并且什么也没找到,所以如果你能指导我一点或者给我发一些示例代码,我将不胜感激。 – ttkalec 2009-12-06 14:00:18

+0

'PolygonTransform'在'Atalasoft.Imaging.ImageProcessing.Transforms'中。它只支持凸多边形,但如果你使用咖啡机上的一个杯子,这将工作。如果您需要凹面多边形,则需要分割图像并使用四边形弯曲。如果您联系我们并给我们一种方法向您发送一些代码以开始使用,那可能会更容易。 – 2009-12-07 20:53:07

0

这可能是某种OpenGL 3D渲染,但是为了达到这种效果,图像很容易以纯2D方式变形。水平地,它需要在杯子侧面离开的地方挤压。每列像素需要根据哪一列以不同的量进行垂直移位 - 例如,图像的水平线会变成“U”形。使用正确的参数,这种变形可以模拟适当的3D形状。照明效果可以适用于通过在正确的位置增亮/变暗图像。

+0

好吧,让我们假设它看起来不错 我可以很容易地在Photoshop中做到这一点:) 但除了GDI +之外,还可以使用什么样的环境来完成此任务? GDI +似乎是一个糟糕的选择,因为它不是基本上为 这种有点东西。 – ttkalec 2009-12-01 20:46:36