Cha*_* Jr 4 base64 byte image dart flutter
我想使用我添加到我的代码中的占位符图像文件"assets/placeholder.png",但是我收到了一个找不到文件的错误.这就是我从dartlang文档中做到的...
var bytes = await new File('assets/placeholder.png').readAsBytes();
String base64 = CryptoUtils.bytesToBase64(bytes);
Run Code Online (Sandbox Code Playgroud)
该bytes变量错误每次.如何保存本地保存的图像文件的字节?
Waj*_*han 14
在 dart 中 Uint8List 等于 byte[]。
创建一个函数并传递文件路径,它将返回字节。
Future<Uint8List> _readFileByte(String filePath) async {
Uri myUri = Uri.parse(filePath);
File audioFile = new File.fromUri(myUri);
Uint8List bytes;
await audioFile.readAsBytes().then((value) {
bytes = Uint8List.fromList(value);
print('reading of bytes is completed');
}).catchError((onError) {
print('Exception Error while reading audio from path:' +
onError.toString());
});
return bytes;
}
Run Code Online (Sandbox Code Playgroud)现在调用该函数以获取文件的字节数。
try{
Uint8List audioByte;
String myPath= 'MyPath/abc.png';
_readFileByte(myPath).then((bytesData) {
audioByte = bytesData;
//do your task here
});
} catch (e) {
// if path invalid or not able to read
print(e);
}
Run Code Online (Sandbox Code Playgroud)如果你想要 base64String 然后使用下面的代码:
String audioString = base64.encode(audioByte);
对于 base64 导入 'dart:convert';
我希望它会有所帮助!
Had*_*ard 10
使用Flutter环境时,AssetBundle如果要访问资产,则必须使用(https://flutter.io/assets-and-images/).
import 'package:flutter/services.dart' show rootBundle;
ByteData bytes = await rootBundle.load('assets/placeholder.png');
Run Code Online (Sandbox Code Playgroud)
import 'dart:convert';
import 'package:flutter/services.dart';
...
ByteData byteData = await rootBundle.load('assets/image.png');
Uint8List bytes = byteData.buffer.asUint8List();
String base64Image = base64.encode(bytes);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8759 次 |
| 最近记录: |