图像存储在 flutter 中的共享首选项中

Mah*_*ari 0 memory store image sharedpreferences flutter

我们如何将图像存储在共享首选项中并在颤振中从共享首选项中检索图像?

小智 10

您可以将图像转换为Unit8List,然后将UnitList8转换为base64并保存。这是一个例子。

static Future<bool> saveImage(List<int> imageBytes) async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    String base64Image = base64Encode(imageBytes);
    return prefs.setString("image", base64Image);
  }

  static Future<Image> getImage() async {
    final SharedPreferences prefs = await SharedPreferences.getInstance();
    Uint8List bytes = base64Decode(prefs.getString("image"));
    return Image.memory(bytes);
  }
Run Code Online (Sandbox Code Playgroud)

然后使用它。

来自资产

 ByteData bytes = await rootBundle.load('assets/file');
  SharedPreferencesHelper.saveImage(bytes.buffer.asUint8List());
Run Code Online (Sandbox Code Playgroud)

来自网络

http.Response response = await http.get(
    'https://flutter.io/images/flutter-mark-square-100.png',
  );
  if(response.statusCode == 200){
    SharedPreferencesHelper.saveImage(response.bodyBytes);
  }else{
    //TODO: Handle error
  }
Run Code Online (Sandbox Code Playgroud)