Je travaille sur une réaction application iOS native où je veux prendre certaines images d'un appareil photo de l'utilisateur rouleau et les enregistrer dans le stockage en nuage (je suis en ce moment en utilisant Firebase).React vitesse native jusqu'à convertir l'image uri base64
Je récupère actuellement les images de la pellicule et afin de sauvegarder chaque image dans le nuage, je convertis chaque image uri en base64 puis en blob en utilisant la bibliothèque react-native-fetch-blob. Bien que cela travaille je trouve le processus de conversion en base64 pour chaque image à prendre très longtemps.
Une image par exemple de l'appareil photo rouleau:
Quelle serait la plus efficace/moyen le plus rapide de prendre l'image uri pour chaque image de la caméra de rouleau, le convertir et le stocker dans le cloud espace de rangement. Y at-il une meilleure façon que je peux être la manipulation de ce? L'utilisation de Web Workers accélérerait-elle le processus de conversion en base64?
Mon actuel processus de conversion d'image:
import RNFetchBlob from 'react-native-fetch-blob';
const Blob = RNFetchBlob.polyfill.Blob;
const fs = RNFetchBlob.fs
window.XMLHttpRequest = RNFetchBlob.polyfill.XMLHttpRequest
window.Blob = Blob
function saveImages(images) {
let blobs = await Promise.all(images.map(async asset => {
let response = await convertImageToBlob(asset.node.image.uri);
return response;
}));
// I will then send the array of blobs to Firebase storage
}
function convertImageToBlob(uri, mime = 'image/jpg') {
const uploadUri = uri.replace('file://', '');
return new Promise(async (resolve, reject) => {
let data = await readStream(uploadUri);
let blob = await Blob.build(data, { type: `${mime};BASE64` });
resolve(blob);
})
}
function readStream(uri) {
return new Promise(async (resolve, reject) => {
let response = await fs.readFile(uri, 'base64');
resolve(response);
})
}
pourquoi avez-vous besoin même le base64? Vous devriez être capable d'aller lire un périphérique -> blob. – codeisforeva