флаттер как сохранить картинку с камеры на устройство? - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь сохранить изображение с камеры в реальном устройстве, но не могу найти способ.

К настоящему времени я сохраняю его в файле, но не могу получить его в галерее ..

Мой код на данный момент:

File _imagenTemporal;

String _opcion = "";

var imagen; 

Future getImagen(String opcion) async {

  if (opcion == "camara") {

    imagen = await ImagePicker.pickImage(source: ImageSource.camera);

  } else if (opcion == "galeria") {

    imagen = await ImagePicker.pickImage(source: ImageSource.gallery);

  }

  setState(() {
    _imagenTemporal = imagen;
  });
}

Ответы [ 2 ]

1 голос
/ 08 марта 2019

Вы можете сохранить Image, полученный с помощью плагина поставщика пути Google :

  • Путь к локальному хранилищу:

    directory = getApplicationDocumentsDirectory() // AppData folder path
    
    directory = getExternalStorageDirectory() // main storage folders path,but only works on android as IOS is not currently supported.
    
    path = directory.path ;
    
  • Скопируйте файл imagen в путь, который вы получили на предыдущем шаге, используя copy fuction:

    File savedImage = await imagen.copy('$path/saved_image.jpg');
    

К этим Image s, сохраненным по этой методологии, можно получить доступ с помощью приложения Files и проиндексировать в вашем приложении Gallery или Photos в зависимости от платформы. Более подробную информацию о можно прочитать в официальной поваренной книге. и пишите файлы и путь к API провайдера документации .

0 голосов
/ 13 апреля 2019

Я только что написал album_saver плагин для этого

. Он может работать как на IOS, так и на Android.

import 'package:album_saver/album_saver.dart';
import 'package:image_picker/image_picker.dart';

File image = await ImagePicker.pickImage(source: ImageSource.gallery);

// Save to ablum
AlbumSaver.saveToAlbum(filePath: image.path, albumName: "YourAlbumName");

// Create album
// In Android, it will create a folder in DCIM folder
AlbumSaver.createAlbum(albumName: "YourAlbumName");

// Get DCIM folder path (just work on Android)
AlbumSaver.getDcimPath();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...