1

我正在画布中创建图像并保存图像。我在这里找到了一个非常好的插件。

图像保存代码:

          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 来避免它,但是有没有办法检测画布何时完成并在它之后调用函数。试过 jquery .change() 没有用。

如果有人发现此代码有用,请随时使用,并且该插件非常好:)

4

1 回答 1

0

如您所见, drawImage不接受任何回调。此外,画布没有定义任何有关其绘图过程的事件。所以你的选择timeout是正确的。只有一件事你可以改进。使用setTimeout(..., 0)而不是setTimeout(..., 3000). 关于这个技巧的更多细节在这里

于 2013-07-23T12:12:17.130 回答