0

我目前正在使用Jdenticon库将用户生identicons成为默认个人资料图片。我想将数据 URI 转换为SVGBlob将其作为图像文件,以便我可以将图像文件存储到Firebase中。

我尝试了一些来自 Stack Overflow 的示例代码,但没有一个对我有用。(我还没有将数据转换为 base64。我认为 SVG 语法中没有任何疯狂的字符。)

createIdenticonBlob(hash: string) {
  if (hash) {
    let svg = jdenticon.toSvg(hash, Math.min(50, 50));
    let uri = "data:image/svg+xml," + encodeURIComponent(svg);
    return this.uploadService.convertDataURIToBlob(uri); // I'm not sure :(
  }
}

jdenicon.toSvg(散列|值,大小[,填充])

我不确定如何转换Data URI为图像文件。有什么想法吗?

4

1 回答 1

0

您不想将 dataURI 转换为文件,您想从 svg 标记创建一个文件,这只是文本,如果您的插件真的返回一个 svg 标记,这真的很容易做到:

createIdenticonBlob(hash: string) {
  if (hash) {
    let svg = jdenticon.toSvg(hash, Math.min(50, 50));
    let blob = new Blob([svg], {type: 'image/svg+xml'});
    return blob;
  }
}
于 2018-02-27T08:52:21.937 回答