Future<Uint8List> 在 Flutter 中转为 Base64 或 PNG
Future<Uint8List> to Base64 or PNG in Flutter
我需要在 Flutter 中将 Future<Uint8List>
转换为 Base64 或 PNG,我正在使用 this pub 获取签名并导出它但是当我调用 toPngBytes()
方法时(pub 中的方法) 它 returns 一个 Future<Uint8List>
我需要将它转换为 Base64
格式或 List<int>
至少 ByteData
格式,我无法将其转换为更有用的格式我的格式,谁能帮我解决这个问题。
_controller.toPngBytes(); // _controller is a variable that holds info about my signature.
import 'dart:convert';
// async variant
final imageData = await _controller.toPngBytes(); // must be called in async method
final imageEncoded = base64.encode(imageData); // returns base64 string
// callback variant
_controller.toPngBytes().then((data) {
final imageEncoded = base64.encode(data);
});
此功能使我能够将图片正确上传到 Xano:
import 'dart:convert';
import 'dart:typed_data';
String uint8ListTob64(Uint8List uint8list) {
String base64String = base64Encode(uint8list);
String header = "data:image/png;base64,";
return header + base64String;
}
您可以通过以下方式将图像转换为 Uint8List:
String path = "image.png";
File file = File(path);
Uint8List uint8list = file.readAsBytesSync();
//or
Uint8List uint8list = await file.readAsBytes();
我需要在 Flutter 中将 Future<Uint8List>
转换为 Base64 或 PNG,我正在使用 this pub 获取签名并导出它但是当我调用 toPngBytes()
方法时(pub 中的方法) 它 returns 一个 Future<Uint8List>
我需要将它转换为 Base64
格式或 List<int>
至少 ByteData
格式,我无法将其转换为更有用的格式我的格式,谁能帮我解决这个问题。
_controller.toPngBytes(); // _controller is a variable that holds info about my signature.
import 'dart:convert';
// async variant
final imageData = await _controller.toPngBytes(); // must be called in async method
final imageEncoded = base64.encode(imageData); // returns base64 string
// callback variant
_controller.toPngBytes().then((data) {
final imageEncoded = base64.encode(data);
});
此功能使我能够将图片正确上传到 Xano:
import 'dart:convert';
import 'dart:typed_data';
String uint8ListTob64(Uint8List uint8list) {
String base64String = base64Encode(uint8list);
String header = "data:image/png;base64,";
return header + base64String;
}
您可以通过以下方式将图像转换为 Uint8List:
String path = "image.png";
File file = File(path);
Uint8List uint8list = file.readAsBytesSync();
//or
Uint8List uint8list = await file.readAsBytes();