カメラで撮影した写真を”アプリのローカル領域”に保存したいの?|File|PathProvider|ImagePicker|Flutter
ImagePicker 0.8.6+2 を使うと、本当に凄く簡単に、シンプルにカメラで撮影した写真を取得できるようになるよ。
カメラで撮影した写真の取り方
以下、これだけ。本当に!
---
final XFile? photo =
await ImagePicker().pickImage(source: ImageSource.camera);
---
final XFile? photo =
await ImagePicker().pickImage(source: ImageSource.camera);
---
ガチのマジで…この一行の実装でカメラが起動するし、撮影すると「XFile? photo」に写真データが入っている!
この写真データを使い勝手良くするには、”アプリのローカル領域”に File で保存しておくのが便利だと思う。
”アプリのローカル領域”に File を保存するには、PathProvider 2.0.12 を使うよ。
ローカル領域への書き込み方
撮影して取得した「XFile? photo」を File に書き込む。
---
/// ローカル領域(ディレクトリ)を取得
/// ローカル領域(ディレクトリ)を取得
Directory appDocDir = await getApplicationDocumentsDirectory();
String appDocDirPath = appDocDir.path;
String appDocDirPath = appDocDir.path;
/// 空ファイルを作成
final file = File('$appDocDirPath/任意のディレクトリ/写真の名前');
await file.create(recursive: true);
/// ファイルへ写真データを書込
final Uint8List buffer = await photo.readAsBytes();
await file.writeAsBytes(buffer, flush: true, mode: FileMode.write);
---
final Uint8List buffer = await photo.readAsBytes();
await file.writeAsBytes(buffer, flush: true, mode: FileMode.write);
---
”ローカル領域” に File で保存しておけば、例えば、アバター画像を丸くクリップしてくれる CircleAvatar とかにも直ぐに使える。
関連する記事
- CircleAvatar の画像を更新しても画面に反映されないの?|File|MemoryImage|FileImage|CircleAvatar|Flutter
- ローカル通知の大きなアイコンに File を設定するの?|largeIcon|FilePathAndroidBitmap|FlutterLocalNotifications|Android|Flutter
- ギャラリー(アルバム)の写真を”アプリのローカル領域”に保存したいの?|File|PathProvider|ImagePicker|Flutter
- 写真のトリミング(切り抜きと回転)を行うの?|ImageCropper|Android|Flutter
参照した記事
- Flutter で Image Picker(0.8.2 以降)を使って撮った写真をファイル保存する
- Flutterで画像をローカルに保存して画面に表示
- Flutterでアルバムから画像を読み込む
- 【Flutter】 カメラやアルバムから写真を読み込む【image_picker】
- カメラ機能の実装(imagepicker)
- How to display picked image in a circle avatar in Flutter?
コメント
コメントを投稿