0

我正在使用图片库保护程序插件来保存图像。方法

await ImageGallerySaver.saveImage(pngBytes)

返回一个对象

{filePath: file:///storage/emulated/0/wallpapers/1608205629471.jpg, errorMessage: null, isSuccess: true}

我想获取新保存文件的路径(/storage/emulated/0/wallpapers/1608205629471.jpg)。

有没有办法做到这一点?

4

3 回答 3

2

那是一个Map对象。String像这样访问文件路径:

var response = await ImageGallerySaver.saveImage(pngBytes);

// value = json['key']
var path = response['filePath']; // 'file:///storage/emulated/0/wallpapers/1608205629471.jpg'
于 2020-12-17T12:36:35.310 回答
1

您可以从这样的地图访问密钥

final imagePath = result['filePath'].toString();

那么如果您需要file://使用正则表达式删除位置路径

final imagePath = result['filePath'].toString().replaceAll(RegExp('file://'), '');

阅读文档以获取更多信息

于 2021-06-15T07:06:46.330 回答
0

首先,您需要与要检索的数据库上的图像 ID 相同。

然后用这个方法传递 id 我给出了一个我用过的片段:

import 'package:path/path.dart' as p;
Directory _appDocsDir;
        class ImageCashUtil {
      ImageCashUtil() {
        init();
      }
      init() async {
        WidgetsFlutterBinding.ensureInitialized();
        _appDocsDir = await getApplicationDocumentsDirectory();
        return _appDocsDir;
      }
    
      File fileFromDocsDir(String filename) {
        String pathName = p.join(_appDocsDir.path, filename);
        return File(pathName);
      }
    }
于 2020-12-17T12:36:39.227 回答