2011-11-02 50 views
1

我们目前在Asp.net c#中有一个网站,我们希望添加功能,我们的用户可以上传个人资料图片,然后将此图像叠加到另一个图像中为他们创建一个个性化的网站名片。ASP.net服务器端图像处理库需要叠加两个图像

我一直在寻找一个包来做一段时间,但无法找到一个完美的适合我们的包。我见过OpenCV和imagemagick,但他们看起来不像他们帮助。我也在寻找这个软件包的功能,让我们旋转和倾斜原始图像。

任何想法或建议如何做到这一点?

在此先感谢。

+1

System.Drawing不提供具体的东西吗?据我可以告诉它很简单,加载你的两个图像(客户源图像,和你的“叠加图像”)[System.Drawing.Bitmap]并将它们相互绘制,然后保存。查看:http://www.codeproject.com/KB/graphics/JoinImages.aspx这是一个很好的一步一步。 –

回答

1

顺便说一句,我前一段时间写了一个类似的库,你可以在CodeCanyon上找到它(ImageHandler)。

看看演示页面,我认为你想要的功能应该是水印。

请记住,该组件带出了一个核心库,一个httphandler,一个mvc3 htmlhelper和一个webforms自定义控件。甚至可以在非web环境中使用核心库。

0

System.Drawing是一个不错的选择,但要注意,虽然它在大多数情况下可以在服务器端应用程序上运行,但它不受Microsoft支持。我们已经在那里我们得到下面的异常长时间使用后许多问题:

Win32Exception: The operation completed successfully 
at MS.Win32.HwndWrapper..ctor(Int32 classStyle, Int32 style, Int32 exStyle, Int32 x, Int32 y, Int32 width, Int32 height, String name, IntPtr parent, HwndWrapperHook[] hooks) 
at System.Windows.Media.MediaContextNotificationWindow..ctor(MediaContext ownerMediaContext) 
at System.Windows.Media.MediaContext..ctor(Dispatcher dispatcher) 

在.NET 2.0/3.5,我们还看到了在Media.Brush构造一个类似的例外。

我们发现这可以通过产生一个'STA'线程并调用所有这样的UI请求到该线程来避免。在我们的例子中,一个线程似乎很多,所以我们没有尝试过多个STA线程。似乎需要使用STA线程来避免上述负载情况下的异常情况。