2013-06-28 175 views
1

我在畫布中創建圖像並保存圖像。我發現了一個非常漂亮的插件here繪製畫布後在手機中保存畫布圖像

代碼將圖像保存:

  var canvas = document.getElementById('myCanvas'); 
      var context = canvas.getContext('2d'); 
      var imageObj = new Image(); 
      imageObj.src = imageURI; 
      imageObj.onload = function() { 
      contentW = $("#content").width(); 
      canvas.width = 400; 
      canvas.height = 600; 
      context.drawImage(imageObj, 0, 0,canvas.width,canvas.height); 

      //the plugin 
      setTimeout(function(){ 
      window.savephotoplugin(canvas,"image/png",device.version,function(val){ 
        //returns you the saved path in val 
        alert("Photo Saved: " + val); 
       }); 
      },3000) 
     } 

該插件非常不錯唯一的問題就是之前畫布甚至得出它完成。所以我放了一個setTimeout來避免它,但是有沒有辦法檢測canvas何時完成並在其後調用函數。試過jQuery的.change()沒有工作。

如果有人發現這個代碼有用隨意使用和插件是非常好的:)

回答

0

正如你可以看到drawImage不接受任何回調。此外,畫布不定義關於其繪製過程的任何事件。所以你選擇timeout是正確的。只有一件事你可能會改善。使用setTimeout(..., 0)而不是setTimeout(..., 3000)。關於這個技巧的更多細節here