canvas.todataurl返回null值?

时间:2012-02-09 12:44:32

标签: javascript jquery cordova

在android phonegap应用程序中,我使用html创建了画布并在该画布中显示图像。然后使用scan.toDataURL(image / jpg)尝试将图像转换为base64字符串,但它返回null值。 如何解决这个问题呢? hoe将图像转换为base64string?

Mycoding:

<html>
<body>
<canvas id="myCanvas" width="200" height="100" style="border:1px solid #c3c3c3;">
Your browser does not support the canvas element.
</canvas>
 <img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
<script type="text/javascript">
   // window.onload = fucntion() {  

        var c=document.getElementById('myCanvas');
        var cxt=c.getContext("2d");
        var img=new Image();
        img.onload = function() { 
            cxt.drawImage(img,0,0);
           alert(" ");
            var dataURL=myCanvas.toDataURL("image/jpg");
            // return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
            alert(dataURL);
        };
        img.src='flower.jpg';

    //};
</script>

</body>
</html>

2 个答案:

答案 0 :(得分:2)

toDataURL未在android 2.x中实现,请参阅http://code.google.com/p/android/issues/detail?id=7901进行讨论。

答案 1 :(得分:0)

正如@ gmh04提到的,Android 2.x中的tovas破坏了toDataURL。曾经有一个CanvasPlugin,但开发人员不再支持它,或者至少它是这样的。除此之外,我将使用FileReader.readAsDataUrl将图像读取为base64数据。