在Web应用程序中包围对象周围的图像

时间:2009-12-01 09:43:23

标签: asp.net ajax image-processing image-manipulation

我正在ASP.NET中创建一个Web应用程序,如下所示: http://www.zazzle.com/cr/design/pt-mug

除了在对象周围包裹图像外,我知道如何做所有事情。 如果我只需要堆叠图像,这将是一项简单的任务 另一方面,如果它们是扁平的,但如果它是圆形物体,就像这个杯子一样 是的,这有点棘手。

我的第一个猜测是为GDI +创建某种算法 模拟对象周围的“包裹”图像(实际上它不是一个3d对象, 它只是它的截图。

我认为这将是原始方法,它会导致质量非常差, 如果我能让它发挥作用。

所以,我的第二个猜测是实现了我想要的3D渲染器 为某个对象提供图像映射,它会将该图像渲染到对象上 并实时返回渲染图像。那可能吗? 还有其他方法吗?我从哪里开始?

2 个答案:

答案 0 :(得分:1)

如果您愿意尝试使用商业产品,我的公司会为.NET编写一个名为DotImage的光栅处理SDK。如果您尝试一下,请查看PolygonTransform。您提供多边形作为点列表,并且类使图像变形以适合多边形内部。如果您需要示例代码,请与我们联系。

答案 1 :(得分:0)

它可能是某种OpenGL 3D渲染,但是对于这种效果,图像可以很容易地以纯2D方式变形。水平方向,它需要在从杯子侧面离开的地方挤压。每列像素需要根据哪个列垂直移动不同的量 - 使得图像的水平线变为“U”形。使用正确的参数,这样的变形可以模仿正确的3D形状。通过在正确的位置使图像变亮/变暗,可以应用照明效果。