2010-04-19 127 views
0

我有一个缩略图列表! 我可以使用jquery旋转图像,但在刷新页面后,图像是相同的! 我想制作一个保存按钮来保存所有的编辑图像? 我如何保存编辑后的图像在服务器端?使用JQuery和PHP旋转图像

感谢

+4

请!别喊! – nickf 2010-04-19 02:37:16

+1

@专家nickf:我忘记了一些天生的专家!打扰一下!!! – robertdd 2010-04-19 03:02:58

回答

3

使用的GD的服务器上imagerotate

当客户端完成旋转时,发送一个AJAX帖子到服务器,图像的ID和旋转角度并调用此函数。

+0

我应该为此负责?像成功或其他东西,只有在旋转图像后? – robertdd 2010-04-28 10:16:06

+0

您可以...显示“正在保存...“标签,同时ajax请求正在运行,然后如果请求失败,只是恢复更改并显示一条消息,说”对不起,请再试一次“ – psychotik 2010-04-28 15:06:13

0

快速的Google搜索返回link text。看起来很有希望。

+0

没有人,我想让自己这 – robertdd 2010-04-19 02:47:49

+0

虽然这是一个好主意为了学习的目的,请记住,当你只需要完成某些事情时,不应该尝试重新创建滚动光盘。 – 2010-04-22 19:04:42

0

您不能将jquery图像保存到服务器。你需要做的是有一个PHP脚本,实际上是轮流(jQuery只用于快速界面系统)。

您可以使用GD imagerotate,或ImageMagick的(这是更为强大)

1

我写了一个类似的系统,一会儿回来。总的想法是这样的:

  • 图像上传到服务器。
  • 服务器将随机唯一标识的图像保存在某个目录中,在用户会话中创建一个条目,保存相关的详细信息和文件名。
  • 在前端,用户可以选择不同的动作,如“旋转90度CCW”,“应用黑白滤镜”等。
  • 这些动作通过AJAX或POST发送到服务器,没关系。
  • 服务器会将这些“过滤器”,以保存在会话列表中,这可能是这个样子(简化):

    array(
        'iuh98ho98p980' => array(
         'file' => 'xyz.jpg', 
         'filters' => array(
          0 => array('type' => 'rotate', 'degree' => 90), 
          1 => array('type' => 'grayscale') 
          ... 
    
  • 要显示给用户的图像,它与一特殊网址,如
    <img src="outputimage.php?iuh98ho98p980" />

  • 当浏览器请求此图片URL时,脚本outputimage.php会动态地从原始文件生成图像,并应用所有过滤器。
    • 图像也可以通过单独的工作线程或应用过滤器后立即呈现,无论哪种工作效果更好。

要启用高速缓存,每个图像的“变体”(应用特定的过滤器的图像)是通过它的过滤器的散列识别。生成的“变体”保存在缓存目录中。哈希也被附加到URL中,所以它也可以被缓存在浏览器端。

希望这能让您走上正确的轨道,我会将实施细节留给您。