颤动如何将照片从相机保存到设备?

lor*_*ena 5 camera gallery save flutter

我正在尝试将相机中的图片保存在真实设备中,但找不到方法。

现在我把它保存在一个文件中,但不能在画廊中得到它..

我此时的代码是:

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;
  });
}
Run Code Online (Sandbox Code Playgroud)

Maz*_*him 6

您可以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 ;
    
    Run Code Online (Sandbox Code Playgroud)
  • imagen使用copy函数将文件复制到您在上一步中获得的路径:

    File savedImage = await imagen.copy('$path/saved_image.jpg');
    
    Run Code Online (Sandbox Code Playgroud)

Image通过这种方法存储的这些s 可以使用您的Files应用程序访问,并根据平台在您的GalleryPhotos应用程序中建立索引。您可以在官方说明书读写文件路径提供程序 API 文档中找到更多信息。


jel*_*nap 6

这个插件 https://pub.dev/packages/gallery_saver 将图像和视频从相机或网络保存到本地存储(Android 和 iOS)

这是它的使用方式:

GallerySaver.saveVideo(path)
GallerySaver.saveImage(path)
Run Code Online (Sandbox Code Playgroud)

path 是本地路径或网络 url。

它返回 Future - 如果成功保存,则返回 true,否则返回 false(出于任何原因)。

  • 这对我来说是迄今为止最简单的解决方案,thx - 适用于我的 Android 手机 (2认同)

小智 5

我刚刚为此编写了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();
Run Code Online (Sandbox Code Playgroud)