【ReactNative】expo-image-pickerを使ってカメラロールから写真を取得する方法
本記事の内容
  • カメラロールから写真を取得し、表示させる方法

について解説します。
この記事を読むことで、このようなアプリを作ることができます。

1. 概要

expo-image-pickerと言うExpoライブラリを使うことで、カメラロールから写真を取得することができます。

公式ドキュメント: ImagePicker

2. 実装

2.1 サンプルコード

3. インストール方法

expo-image-pickerライブラリを使う為、以下のコマンドでインストールします。

4. 使い方

4.1 サンプルコードについて解説

ImagePicker.requestCameraRollPermissionsAsync()

または、Permissions.askAsync(Permissions.CAMERA_ROLL)。
ユーザーの写真にアクセスするためのアクセス許可を付与するようにユーザーに要求します。

ImagePicker.launchImageLibraryAsync

カメラロールから画像またはビデオを選択するためのシステムUIを表示します。
また、以下の引数を設定
  • mediaTypes:
  • 以下の3つの中からメディアタイプを選択。
    • MediaTypeOptions.All (画像と動画)
    • MediaTypeOptions.Images (画像のみ)
    • MediaTypeOptions.Videos (動画のみ)
  • allowEditing: “false” or “true”
  • 画像/動画を選択した後に編集するためのUIを表示するかどうか。
    画像:Androidでは、ユーザーは画像をトリミングして回転させることができ、iOSでは単にトリミングします。
    ビデオ:iOSユーザーはビデオをトリミングできます。
  • aspect: [x, y]
  • [x, y]ユーザーが(渡すことによってallowsEditing: true)画像を編集することを許可されている場合に維持するアスペクト比を指定する2つのエントリを持つ配列。iOSではトリミング四角形が常に正方形であるため、これはAndroidにのみ適用されます。
  • quality: 0〜1
  • 圧縮の品質を0〜1の範囲で指定します。0は小さいサイズの圧縮を意味し、1は最高品質の圧縮を意味します。

呼び出した写真の情報を
this.setState({ photo: result.uri });
でthis.state.photoに設定し、これを表示することで写真として表示することができます。