reactjs - React Native Expo konverter URL-bilde til Base64
Jeg jobber med en app som laster bilder fra API. Kravet til appen er å lagre disse bildene offline i appens database som er basert på SQLite. Den eneste måten jeg tror på er å konvertere bildene til en base64-streng, og det vil være enkelt for meg å vise bilder.
Jeg har brukt RN-Fetch-Blob-biblioteket før, men Expo støtter det ikke. Så jeg leter etter en måte å gjøre det på, men jeg har ikke funnet noe.
Jeg prøvde dette biblioteket react-native-image-base64
Men det fungerer ikke
ImgToBase64.getBase64String('http://i.imgur.com/XP2BE7q.jpg')
.then(base64String => console.log(base64String))
.catch(err => console.log(err));
Kan noen fortelle meg hvordan jeg kan konvertere et bilde til base64 i Expo?
Svar #1
Selv om dette ikke svarer på spørsmålet ditt, kan du vurdere å lagre bildet som BLOB-type i din SQLite-database. Du kan sjekke noen eksempler her: https://medium.com/@ericmorgan1/upload-images-to-firebase-in-expo-c4a7d4c46d06
Ideen er, ved å bruke Expo, kan vi bruke ImagePicker for å få URI-en, og deretter bruke fetch()-API-et for å hente BLOB-dataene.
Når vi får BLOB-dataene, kan vi lagre dem i SQLite-databasen vår.
Eksempel :
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();
