Html 在将图像发送到服务器之前上载并裁剪图像

Html 在将图像发送到服务器之前上载并裁剪图像,html,asp.net-mvc,image,upload,crop,Html,Asp.net Mvc,Image,Upload,Crop,是否有一些客户端组件(jquery/swf)可以在浏览器中上载和裁剪图像(用户应该能够选择要裁剪的区域),然后将裁剪后的图像发送到服务器 我使用的是asp.net-mvc(不确定是否重要) Jcrop是向web应用程序添加图像裁剪功能的一种快速简便的方法。它结合了典型jQuery插件的易用性和强大的跨平台DHTML裁剪引擎,忠实于熟悉的桌面图形应用程序 Jcrop图像插件可能擅长显示裁剪UI并在浏览器中获取裁剪坐标。但是,它实际上不会裁剪图像。因此,裁剪过程是在服务器上完成的,这对服务器性能非常

是否有一些客户端组件(jquery/swf)可以在浏览器中上载和裁剪图像(用户应该能够选择要裁剪的区域),然后将裁剪后的图像发送到服务器

我使用的是asp.net-mvc(不确定是否重要)


Jcrop是向web应用程序添加图像裁剪功能的一种快速简便的方法。它结合了典型jQuery插件的易用性和强大的跨平台DHTML裁剪引擎,忠实于熟悉的桌面图形应用程序

Jcrop图像插件可能擅长显示裁剪UI并在浏览器中获取裁剪坐标。但是,它实际上不会裁剪图像。因此,裁剪过程是在服务器上完成的,这对服务器性能非常不利

答案是引入一个Jcrop扩展,它在浏览器中裁剪图像并上传 将图像裁剪到服务器。“它使用Jcrop插件裁剪图像,在HTML5Canvas元素中绘制裁剪区域,将画布转换为blob,并通过AJAX将图像文件上载到服务器”


最重要的部分是canvasToBlob函数,它将HTML5canvas元素转换为Blob类型,该类型可以作为图像上传到服务器。不幸的是,这种方法只能在AJAX中使用,不能直接提交表单,因为blob不能作为输入文件放入标准HTML表单元素中。实际上,在裁剪图像时,我们很少使用表单直接提交图像。

要完成这项复杂的任务,您需要将裁剪UI与上载程序结合起来。裁剪UI负责显示裁剪UI并给出裁剪坐标,上传者裁剪并调整图像大小,将其转换为blob并上传到服务器


裁剪UI很常见,但很难找到上传程序。我推荐裁剪UI,它易于使用,而且简单可扩展,但不是免费的。

我支持这一点。请参阅在MVC中使用它的教程。是的,jcrop很适合裁剪,但是在裁剪之前必须上载整个图像,我想知道在将图像发送到服务器之前是否有什么东西可以在客户端裁剪图像裁剪客户端需要某种插件,如Flash或Silverlight(你不能通过JavaScript来完成)。@Dan Diplo我对Flash没意见,Flash中有没有为此目的制作的东西?@Omu-看到这篇文章了吗?希望它能有所帮助?很好地指出正确的答案,但没有你的贡献的链接并不是一个答案。最好更新你的答案以添加详细信息,或者将其作为评论添加到问题中并删除此答案