使用.Net和Javascript以PNG作为掩码覆盖图像

我有一个项目正在处理用户可以上传PNG格式的帧图像。 在他们上传框架后,他们可以上传将放置在框架后面的照片。 照片可以resize并移动,以便他们可以将照片放入框架中。 一旦他们对自己的工作感到满意,他们就可以保存自己的工作。

canvas在客户端上是固定大小的。 这是一个ASP.Net MVC4应用程序,我们正在使用JavaScript / JQuery。 我只对System.Drawing库做了一点工作,但还不确定它们是如何组合在一起的。 如果只使用.Net和JavaScript / JQuery就可以轻松完成,但我并不反对使用第三方.Net库和JavaScript / JQuery。

更新我是goign共享用户将进行resize,移动和裁剪图像的步骤。

步骤1:用户通过单击某个UI加载框架,然后打开一个工作区域为432px x 348px的弹出窗口。 框架是PNG,具有透明的中心和外边缘。 在该窗口上将是用户上载图像的区域。 如图1所示,图像以100%加载并超过窗口。 用户可以选择移动图像并裁剪或移动到步骤2。

步骤1

步骤2:用户将移动图像以找到手柄,以便他们可以调整图像大小。 他们可以在没有resize的情况下选择裁剪,或者转到第3步。

第2步

第3步:用户将调整图像大小并将其移动到位。 完成后,他们将裁剪上传的图像。

第3步

步骤4:这是将数据发送到要处理的服务器之后的最终结果。

在此处输入图像描述

它可以在纯.NET中完成。 不必使用其他库。

要将图像上传function添加到您的应用程序,请在此处查看答案:将照片上载到MVC 4应用程序 。

如果你让用户上传带有透明度支持的png格式的图像,你应该只能在另一个图像上绘制一个图像,就像这里的示例代码一样(在那里使用gif): http://www.daniweb .com / web-development / aspnet / threads / 112667 / how-to-overlay-two-images-in-c 。

您也可以支持其他格式的帧(如jpgbmp ),但是,为了支持这种情况,您应该手动选择要在原始图像上绘制的像素。 其中一个最简单的解决方案是将其中一种颜色设置为透明度键,因此当像素采用此颜色时,它将不会在结果图像中绘制。 您可以选择鲜艳的粉红色或其他很少使用的颜色(甚至允许用户选择它)。 它仍然不是很复杂,购买它需要更多的代码,一些额外的工作使其快速和一个阈值,以检测相似的像素质量差的帧图像。

如果您需要一些代码帮助,请告诉我。