Я пытаюсь захватить изображение, а затем отправить путь изображения в функцию, которая возвращает изображение в Base64. Для захвата изображения я использую пример на веб-сайте Flutter.
Future _takePhoto(BuildContext context) async {
try {
await _initializeControllerFuture;
final path = join(
(await getTemporaryDirectory()).path,
'${DateTime.now()}.png',
);
await _cameraController.takePicture(path);
setState(() {
_imagePath = path;
});
} catch (e) {
print(e);
}
}
Это работает хорошо. Я вижу захваченное изображение в виджете Image.file(File(_imagePath))
Проблема начинается, когда я пытаюсь преобразовать изображение в Base64.
File file = File(_imagePath);
final _imageFile = ImageProcess.decodeImage(
file.readAsBytesSync(),
);
String base64Image = base64Encode(ImageProcess.encodePng(_imageFile));
print(base64Image);
Я копирую и вставляю напечатанное сообщение в онлайн-инструмент, который генерирует изображение из Base64, и оно либо черное, либо имеет крошечный верхний слой изображения, а остальное черное.