Web应用程序上的图像编辑

时间:2014-10-24 20:15:22

标签: javascript html5 api image-processing canvas

在我的网站上,用户存储了一些图像。我想建立一个系统,他们可以在网站上编辑这些图像并保存它们。编辑是非常基本的,如旋转,裁剪,增强亮度添加滤镜等。我试图弄清楚如何实现这个

到目前为止,我的理解是有多种方法可以做到这一点。我可以在服务器端编写所有图像编辑代码(使用库),然后从我的网站调用此服务API。

我也可以在客户端进行所有更改。我找到了PicMonkey库,它可以让我这样做(虽然它基于闪存,但我并不想真正使用它。)

我还检查了flickr是如何做到的,他们使用这个库https://developers.aviary.com/,让他们可以进行所有客户端编辑。

我想了解更多关于使用这些客户端JavaScript库(例如鸟舍)的信息,使用它们与服务器端编辑的优缺点是什么。我需要写什么服务组件,如果我使用像Avairy这样的东西的话。更具体地说,我是将图像发送到服务器进行修改还是首先在HTML画布上修改它,然后将修改后的图像发送到服务器进行保存。

3 个答案:

答案 0 :(得分:4)

今天浏览器变得非常强大,所以你应该在客户端本身进行基本编辑,这样你的服务器就不会有太多的负担,也会利用客户端的处理能力。

您在客户端执行此操作的库很少

1)https://developers.aviary.com/

2)http://camanjs.com/

3)http://www.pixastic.com/editor-test/

但正如你所说,

  

编辑非常基本,如旋转,裁剪,增强亮度添加   过滤器等

你可以为这些编辑创建自己的代码,有很多教程,我发现很少有用,

http://www.html5canvastutorials.com/advanced/html5-canvas-grayscale-image-colors-tutorial/

http://www.williammalone.com/articles/create-html5-canvas-javascript-drawing-app/

如果您尝试在客户端进行操作,那么很少有事情可以让您的应用完全崩溃,例如。照片桶工具。 这是一个教程,也是用于创建使用泛洪填充算法的照片桶工具。

http://www.williammalone.com/articles/html5-canvas-javascript-paint-bucket-tool/ 但是你应该在服务器上保留这些繁重的算法,这样你的应用就不会崩溃。

答案 1 :(得分:0)

如果你擅长服务器端编程我的自拍思想是"为什么不使用原始的PHP GD库或PHP附加的imagemagick?"

http://www.imagemagick.org/

Photo editing in php

这取决于您期望的服务器负载 - 同时处理多达10个人就可以了,但一次只有100到1000个人?对于第二种情况,客户端编辑确实是更好的选择,否则您的服务器将过载。 Naeem-Shaikh为你提供了一些链接。

答案 2 :(得分:0)

我建议将其作为客户端。

JavaScript将为您提供基本编辑所需的一切,您将能够以干净的方式组织代码。 客户端应用程序不会强迫您处理XHR,等待,发送,h​​ttp,所有您必须掌握的相同服务器端应用程序以始终显示当前草稿。在服务器端,您将需要具有可用资源的服务器来完成这项工作。

即使他们失去了连接,用户也可以继续编辑,并且相信我这一点应该足够专业人员来做客户端。编辑也会感觉更加流畅。

那么为什么会犹豫不决呢?那么,服务器端也有优势。 有许多(10+)个图书馆经过测试,记录,增强可供使用。也许你没有时间或精力学习JavaScript。也许将来,你会想要使用比客户拥有更多CPU的新的,繁重的编辑功能来扩展你的应用程序,...