Трепещите, как преобразовать изображение в строку base64 и снова показать изображение

#flutter #dart

Вопрос:

Я просто выбираю изображение из пакета image_picker, как это

 _imgFromCamera() async {
File image = await ImagePicker.pickImage(
    source: ImageSource.camera, imageQuality: 50
);
final bytes = image.readAsBytesSync();

String base64Image = base64Encode(bytes);
print(base64Image);

setState(() {
  _image = image;
});
 

}

Вы можете видеть, что у меня также есть изображение преобразования в строке. Мне нужно знать, как я могу показать эту строку в виде изображения? Поскольку я сохраняю эту строку на другой странице, теперь мне нужно показать изображение

Комментарии:

1. Почему вам нужно преобразовать изображение в строку base64. Вам нужно где-то так это хранить? Или это просто то, что, как вы думали, может вам помочь?

2. @SiddharthAgrawal Я обновил вопрос, который мне нужно сохранить в виде строки, потому что на другой странице мне нужно показать то же изображение, я сделаю это с помощью sqllite, поэтому я думаю, что здесь проще всего преобразовать в строку.

3. Если вам не нужно хранить изображение в базе данных, почему бы вам не передать этот файл и не показать изображение с помощью файла?

4. Нужно его хранить.

Ответ №1:

Вы можете преобразовать строку base64 в файл с помощью

 import `dart:covert`
Uint8List bytes = base64decode(_base64);
 

а затем отобразите его с помощью виджета

 Image.memory(bytes),
 

Вы можете просто написать это в одной строке, но я разделил ее для удобства чтения

 Image.memory(base64Decode(base64String));