动态创建数据URI?

时间:2011-10-21 06:48:06

标签: javascript base64

是否有脚本(javascript /客户端)。即时创建数据URI。现在我使用在线base64创建者创建数据URI。然后将该输出放在css文件中。但是当我改变图像时。它做了很多工作。有没有可以为我做的脚本。?

3 个答案:

答案 0 :(得分:8)

现代浏览器现在拥有良好的支持for base64 encoding and decoding。有两个函数分别用于解码和编码base64字符串:

  • atob()解码一串base-64数据
  • btoa()从"字符串"创建base-64编码的ASCII字符串。二进制数据

这使您可以轻松创建数据,即

var longText = "Lorem ipsum....";
var dataUri = "data:text/plain;base64," + btoa(longText);
//a sample api expecting an uri
d3.csv(dataUri, function(parsed){

});

答案 1 :(得分:0)

作为针对您的方案的完整解决方案,您可以使用fetch获取图像的blob表示,然后使用FileReader将blob转换为其{{1} }表示形式

base64

答案 2 :(得分:0)

一种方法是使一个对象Blob,然后使用URL.createObjectURL()

let a = URL.createObjectURL(new Blob([JSON.stringify({whatever: "String..."}, null, 2)]))


console.log(a)