首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在React Native中将base64转换为Blob?

如何在React Native中将base64转换为Blob?
EN

Stack Overflow用户
提问于 2016-04-18 23:47:54
回答 4查看 15.1K关注 0票数 15

我将在react原生中将b64转换为blob。

但是我在atob函数上遇到了错误。

这是我的代码。

代码语言:javascript
复制
var binary = atob(this.state.avatarSource.uri.split(',')[1]);
var byteNumbers = new Array(binary.length);

for(var i = 0; i < binary.length; i++) {
  byteNumbers.push(binary.charCodeAt(i));
}
var file = new Blob([new Uint8Array(byteNumbers)], {type: 'image/jpeg'});

有谁知道吗?

EN

回答 4

Stack Overflow用户

发布于 2016-07-25 11:11:42

不要使用atobbtoa,它们只在Debug Mode中有效。

因为当您使用调试模式时,您是在浏览器中运行JS代码(应该是V8),而如果您要在生产模式下运行应用程序,则它使用的是没有atobbtoa实现的JavascriptCore

您可以使用base-64将数据转换为BASE64编码的字符串,但我不确定它是否能为您创建正确的Blob对象。

据我所知,Blob是JS上下文和文件系统之间的桥梁,React Native本身还没有文件系统API,因此你可能会得到一个Blob对象,但它总是空的。

如果你打算从包含数字的数组中创建一个图像,你可以看看react-native-fetch-blob,这是我正在做的一个项目,希望它能解决这类问题:)

票数 10
EN

Stack Overflow用户

发布于 2016-07-08 21:44:40

我正在得到一幅图像的64进制。之后,我将从下面的代码中显示它。希望能对你有所帮助

代码语言:javascript
复制
let imgSrc = "data:image/png;base64," + base64ImageData;
<Image source={{uri: imgSrc, scale: 1}} style={{ height: 80, width: 80}}/>
票数 0
EN

Stack Overflow用户

发布于 2021-02-21 03:54:00

你可以试试fetch

代码语言:javascript
复制
  let blob = await this.base64ToBlob(encoded);
  console.log('btoB64 resp === ', blob);

  async base64ToBlob(encoded) {
    let url = `data:image/jpg;base64,${encoded}`;
    let res = await fetch(url);
    let blob = await res?.blob();
    return blob;
  }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36698716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档