2010-04-19 124 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中,所以它也可以被緩存在瀏覽器端。

希望這能讓您走上正確的軌道,我會將實施細節留給您。