首页 > 解决方案 > 我需要将图片保存在特定位置颤动

问题描述

我需要将图片保存在特定位置而不是临时位置。

void _takePicture(BuildContext context) async {
    try {
      await _initializeCameraControllerFuture;

      final path =
      join((await getTemporaryDirectory()).path, '${DateTime.now()}.png');

      await _cameraController.takePicture(path);

      Navigator.pop(context,path);

    } catch (e) {
      print(e);
    }
  }

标签: flutterdart

解决方案


您需要将图像保存到外部存储目录中,以便在图库中显示图像。不是获取临时目录,而是获取外部存储目录。

final directory = await getExternalStorageDirectory();

您需要提供AndroidManifest.xml文件android/app/src/main夹文件的权限

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

然后假设您要创建一个名为 MyImages 的文件夹并将新图像添加到该文件夹​​中,

final myImagePath = '${directory.path}/MyImages' ;
final myImgDir = await new Directory(myImagePath).create();

然后将文件写入路径。

var kompresimg = new File("$myImagePath/image_$baru$rand.jpg")
  ..writeAsBytesSync(img.encodeJpg(gambarKecilx, quality: 95));

要获取文件数,只需将文件获取到列表并检查列表的长度

var listOfFiles = await myImgDir.list(recursive: true).toList();
var count = countList.length;

或者检查这个。


推荐阅读