1

我正在尝试使用 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,/, "");

调用 toDataURL 方法时出现错误:DOM Exception: SECURITY_ERR (18)。

知道我在这里做错了什么吗?

谢谢

4

2 回答 2

1

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

您可以将文本编码为 base64 编码。Codeplex 中有一个不错的项目单击此处

我不确定您是否可以对图像进行编码,请尝试一下。

于 2013-07-01T16:17:17.967 回答
0

由于相同的来源政策,当您在画布上绘制来自页面以外的其他来源的东西时,您无法对画布进行编码,除非:

  • 绘制的图像带有相关的CORS 标头
  • 您通过代理提供它,以便浏览器认为它是同一个来源

请注意,如果您在 中打开页面file://,则任何图像都将被视为来自另一个来源。

于 2013-07-01T15:33:29.980 回答