React Native Expo将URL图像转换为Base64

时间:2019-02-19 07:23:23

标签: reactjs typescript react-native ecmascript-6 expo

我正在开发一个从api加载图像的应用程序。该应用程序的要求是将这些图像离线存储在基于sqllite的应用程序数据库中。我认为的唯一方法是将图像转换为base64字符串,这对我来说很容易显示图像。

我以前使用过RN-Fetch-Blob库,但expo不支持。所以我正在寻找一种方法来做,但是我什么也没找到。

我尝试了这个库react-native-image-base64

但这不起作用

ImgToBase64.getBase64String('http://i.imgur.com/XP2BE7q.jpg')
        .then(base64String => console.log(base64String))
        .catch(err => console.log(err));

有人告诉我如何在Expo中将图像转换为base64吗?

1 个答案:

答案 0 :(得分:0)

尽管这不能回答您的问题,但是您可能要考虑将图像作为BLOB类型存储在sqlite DB中。您可以在此处查看一些示例:https://medium.com/@ericmorgan1/upload-images-to-firebase-in-expo-c4a7d4c46d06

想法是,使用Expo,我们可以使用ImagePicker获取URI,然后使用fetch() API来检索BLOB数据。

一旦获得BLOB数据,就可以将其存储到SQLite数据库中。


示例:

const imageUrl = 'http://i.imgur.com/XP2BE7q.jpg';
const response = await fetch(imageUrl);
// This will be the blob data that you will have to store inside your SQLite DB
const blob = await response.blob();