如何使用jquery将图像编码为base64?

时间:2013-07-01 15:31:16

标签: javascript jquery base64

我正在尝试使用IE9将图像(jpg)编码为base64。我尝试了以下代码:

var canvas = document.createElement("canvas");
    canvas.width = document.getElementById('myImage').width; 
    canvas.height = document.getElementById('myImage').height;

    var ctx = canvas.getContext("2d");
    ctx.drawImage(document.getElementById('myImage'), 0, 0);

    var dataURL = canvas.toDataURL("image/png");

    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");

我收到错误:DOM异常:SECURITY_ERR(18),当我调用toDataURL方法时。

知道我在这里做错了吗?

由于

2 个答案:

答案 0 :(得分:1)

您需要使用php或任何其他服务器端语言将图像编码为base64编码。为此目的使用jquery ajax,在服务器端对其进行编码并将其传递给客户端。

您可以将文本编码为base64编码。在Codeplex Click here中有一个不错的项目

我不确定你可以编码图片,试一试。

答案 1 :(得分:0)

由于same origin policy,除非是:

,否则当您从画布上绘制来自其他来源的画布时,您无法对画布进行编码。
  • 所绘制的图片已提供相关的CORS headers
  • 您通过代理服务,以便浏览器认为它是相同的来源

请注意,如果您在file://中打开页面,则任何图片都会被视为来自其他来源。