【发布时间】:2014-01-12 08:12:32
【问题描述】:
我刚刚开始实现文件上传功能,想知道添加裁剪功能的最佳方法是什么。
基本上,我希望用户能够按照我给定的纵横比裁剪他们的图像。我目前拥有的是使用 jQuery 文件上传插件的功能文件上传。当我选择一个文件时,它会自动通过 ajax 将文件上传到我的后端并做一些事情(保存图像、生成缩略图等)。我检查了一些关于前端裁剪功能的插件,发现 jQuery imgareaselect 符合我的要求。
所以我的问题是,如何将裁剪逻辑与我目前拥有的逻辑相匹配?所以当用户上传文件时,文件会自动上传并保存在后端。那么如果我选择裁剪图像,它应该只发送坐标并重新裁剪已经保存的图像吗?
一些逻辑流程和示例会很有帮助。谢谢!
【问题讨论】:
-
如果您要将完整图像发送到服务器,无论您想将裁剪坐标发送到服务器并让服务器负责裁剪它。但是,如果您不需要支持旧版浏览器,您可以在使用 HTML5 File API 将图像发送到服务器之前在浏览器中进行裁剪,从而节省带宽和存储空间。
-
@Thayne 我计划支持旧版浏览器。你是说我必须通过另一个请求(与 jquery fileupload 无关)发送裁剪坐标,然后在后端裁剪图像?
-
可能还有其他方法可以做到这一点,例如您可以让服务器发回图像或图像的 url 并对其进行操作,但如果您想支持 IE9 或更早版本,请发送后端的坐标和裁剪可能是最简单的解决方案。
-
您也可以使用 flash 或(我有点畏缩)silverlight 之类的东西,甚至是 Java 小程序。
-
我明白了,是的,我想我会发送坐标并在后端进行裁剪。如果你愿意,你可以发表你的评论作为答案,所以我可以接受。谢谢!
标签: jquery file-upload crop image-resizing jquery-file-upload