web-dev-qa-db-fra.com

Flutter Comment enregistrer une photo de la caméra au périphérique?

J'essaie d'enregistrer une photo de la caméra dans un réel appareil, mais je ne trouve pas de manière.

À présent, je l'obtiens dans un fichier, mais je ne peux pas l'obtenir dans la galerie ..

Mon code en ce moment est:

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;
  });
}
5
lorena

* Ma solution à ce problème est SharedPreferences - Store FileName.Path en tant que chaîne et restauration au fichier (chemin); Peut-être que cela aidera à quelqu'un *

 //global variables:
  File imageFile;
  String finalPath;

  //store string value
  Future<void> storeSharedPrefs(String key, String value) async {
    final prefs = await SharedPreferences.getInstance();
    await prefs.setString(key, value);
  }

  //restore string value
  Future<String> restoreSharedPrefs(String key, String inputValue) async {
    final prefs = await SharedPreferences.getInstance();
    final value = prefs.getString(key);

    if (value == null) {
      return null;
    }

    setState(() {
      inputValue = value;
    });

    return inputValue;
  }

  //load saves
  void loadPrefs() async {
    try {
      //restore saved shared prefs:
      finalPath = await restoreSharedPrefs('image', finalPath);

      //load imageFile with restored shared prefs path:
      this.setState(() {
        if (finalPath != null) imageFile = File(finalPath);
      });
      debugPrint('restored path is: $finalPath');
    } catch (e) {
      print('loading error: $e');
    }
  }

  @override
  void initState() {
    super.initState();
    loadPrefs();
  }
0
Rafi Dev