私は、ユーザーのカメラロールから特定の画像を取得してクラウドストレージに保存する(現時点ではFirebaseを使用しています)、反応するネイティブiOSアプリケーションに取り組んでいます。React Native Image uriをbase64に変換するスピードアップ
私は現在、カメラロールから画像を取得しています。各画像をクラウドに保存するために、画像URLをbase64に変換してから、react-native-fetch-blobライブラリを使用してブロブに変換しています。これが動作している間、私は各画像が非常に長い時間を取っているために、base64への変換プロセスを探しています。
、カメラロールから画像ごとに画像のURIを取り、それを変換して、雲にそれを格納するための最も効率的/最速の方法だろう何ストレージ。 これを処理するにはより良い方法がありますか? Web Workersを使用すると、base64変換処理が高速化されますか?
私の現在の画像変換処理は:
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);
})
}
なぜあなたも、BASE64が必要なのでしょうか?デバイスのread - > blobを実行できるはずです。 – codeisforeva