ライブラリ名そのままですが、React Native で画像 URI を Blob に変換できるライブラリ「react-native-image-to-blob」のご紹介です。
正にやりたいと思っていたことがこのライブラリをインストールすると、簡単に実現できました!
GitHub のページはこちら。
GitHub – zusinShinpei/react-native-image-to-blob: image to blob library for react-native
https://github.com/zusinShinpei/react-native-image-to-blob
ライブラリのインストールは下記のコマンドで行います。
npm install --save react-native-image-to-blob react-native-image-resizer npx pod-install /* iOS の場合 */
なお、iOS の場合は pod install を行う必要があるので、2行目のコマンドも実行してください。
上記が完了したら、早速プロジェクトに組み込んでいきます。
なお、画像選択には react-native-image-picker ライブラリを使用しています。
サンプルコードは下記のとおりです。
import ImagePicker from 'react-native-image-picker'; import imageToBlob from 'react-native-image-to-blob/lib/imageToBlob';
async changePhoto() {
try {
const options = {
title: '写真を変更する',
takePhotoButtonTitle: 'カメラで写真を撮影する',
chooseFromLibraryButtonTitle: 'アルバムから写真を選択する',
storageOptions: {
skipBackup: true,
path: 'images',
},
};
ImagePicker.showImagePicker(options, (response) => {
if (response.didCancel) {
console.log('User cancelled image picker');
} else if (response.error) {
console.log('ImagePicker Error: ', response.error);
} else if (response.customButton) {
console.log('User tapped custom button: ', response.customButton);
} else {
this.uploadPhoto(response);
}
});
} catch(error) {
console.log(error);
}
}
async convertPhoto(file) {
try {
const imageFile = await imageToBlob(file);
/* 画像変換後の処理 */
} catch(error) {
console.log(error);
}
}
changePhoto 関数を実行すると写真をカメラで撮影するか、アルバムから取得するかの確認ダイアログが表示され、写真の撮影、もしくは選択に成功すると、convertPhoto 関数が実行され、画像が URI から Blob に変換します。
処理としては以上です!
あとは、変換後の画像をアップロードするなどの任意の処理を実行してください。
以上、React Native で画像 URI を Blob に変換できるライブラリ「react-native-image-to-blob」のご紹介でした。
ご参考になれば幸いです。