如何在 React Native 中显示 blob 图像

IT技术 javascript node.js reactjs react-native blob
2021-05-20 17:41:35

这是我的代码:

<Image source={BlobImage} style={{ height: 200, width: null, flex: 1 }} />

其中 BlobImage 是像这样的 blob 字符串中的图像c916851b-3e53-432d-8d18-3de293776859?offset=0&size=371537

编辑:

我将 base64 图像上传到 cpanel,它会自动转换为 Blob。当我从 cpanel 获取数据时,我得到一个缓冲区数组并且无法显示它。我试过这个,但它不起作用

var blob = new Blob([img], {type: "image/png"})
var blobUrl = URL.createObjectURL(blob);

并在渲染中

<Image source={{uri:blobUrl}} style={{ height: 200, width: null, flex: 1 }} />

img来自 cpanel 的原始数据在哪里,它是一个字节数组。

这就是我使用 react-native-photo-upload 获取数据的方式

<PhotoUpload
    onPhotoSelect={avatar => {
                   if (avatar) {
                       this.setState({
                           imageUrl: avatar
                       });
                   }}}>
2个回答

你可以转换blobbase64FileReaderAPI,然后显示它。

代码:

const fileReaderInstance = new FileReader();
 fileReaderInstance.readAsDataURL(blob); 
 fileReaderInstance.onload = () => {
     base64data = fileReaderInstance.result;                
     console.log(base64data);
 }

并在获得后将其显示为:

<Image source={{uri: base64ImageData}} style={{ height: 200, width: null, flex: 1 }} />

也许你可以尝试这样的事情

<Image source={{uri: BlobImage}} style={{ height: 200, width: null, flex: 1 }}/>