使用 JavaScript 创建 base64 编码的图像

新手上路,请多包涵

由于图像是数据,我们可以将代码编写为

 <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

现在我的观点是:我们可以用 javascript 创建 base64 数据吗?有什么框架吗?

我的实际要求是我有一个像“Cow”这样的字符串,我想要它作为一个图像。

注意:我不希望服务器调用它。我知道我可以通过将“Cow”作为参数传递来调用服务器端代码。我的服务器端代码可以生成该图像,但我想使用 JavaScript 从浏览器执行此操作。

原文由 Partha Sarathi Ghosh 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 310
2 个回答

您可以使用画布创建图像。有许多画布框架可以为您提供帮助。然后您可以将画布“导出”为 base64 字符串。

使用 jCanvas 试试这个示例:

HTML

 <p>
  Result:
</p>
<p>
  <textarea id="result" cols="60" rows="10"></textarea>
</p>
<p>
  <input id="click" type="button" value="Convert to base64">
</p>
<p>
  Canvas<br><canvas id="myCanvas" width="100" height="100"/>
</p>

JavaScript

 $(function(){

  var canvas = document.getElementById("myCanvas");
  var ctx = canvas.getContext("2d");
  ctx.fillStyle = "#FF0000";
  ctx.fillRect(0, 0, 80, 80);

  $('#click').click(function() {
    $('#result').html($("canvas").getCanvasImage());
  });
});

演示

在此处输入图像描述

原文由 Ali Mamedov 发布,翻译遵循 CC BY-SA 4.0 许可协议

我希望我答对了你的问题。你想要实际数据而不是 uri??

我从 MuniR 中找到了这个小片段,我想这就是你想要的。

问题是我们似乎无法摆脱画布,用图像的大小创建它,绘制图像并使用画布对象来存储它!!-不一定使用它……希望它有所帮助,祝你好运

function getBase64FromImageUrl(url) {
    var img = new Image();

    img.setAttribute('crossOrigin', 'anonymous');

    img.onload = function () {
        var canvas = document.createElement("canvas");
        canvas.width =this.width;
        canvas.height =this.height;

        var ctx = canvas.getContext("2d");
        ctx.drawImage(this, 0, 0);

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

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

    img.src = url;
}

原文由 Sune Christiansen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏