![](/img/trans.png)
[英]Convert base64 html image to an image to show on Flutter app
[英]Flutter/Dart - Convert image(base64) show error in circle avatar
将图像转换为:
final prefs = await SharedPreferences.getInstance();
var image = ((prefs.getString('photo')));
var send = {'name': usu, 'email': email, 'image': photo};
在小部件中:
Widget _buildDrawer(BuildContext context) { return FutureBuilder<Map>(
future: getFutureDates(), // function where you call your api
builder: (BuildContext context, AsyncSnapshot<Map> snapshot) {
if(!snapshot.hasData) {
return Center(child: CircularProgressIndicator());
} else {
Uint8List profile = base64.decode(snapshot.data['image']); new UserAccountsDrawerHeader(
accountName: new Text((json.encode(snapshot.data['name']).toString().replaceAll('"', ''))),
accountEmail: new Text((json.encode(snapshot.data['email']).toString().replaceAll('"', ''))),
currentAccountPicture: new CircleAvatar(
backgroundImage: MemoryImage((profile)),
),
), } }
名称和 email 没问题,但照片给我一个错误:
无效字符(在字符 5 处)
数据:图像/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8PDw8PDxAPDw4PD...
原因:
base64 字符串包含data:image/png;base64,
导致错误
data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8PDw8PDxAPDw4PD
解决方案:
删除字符串data:image/png;base64,
,你可以使用substring(22)
并且只保留
/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8PDw8PDxAPDw4PD...
代码片段
void main() {
String base64str = '''data:image/png;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8PDw8PDxAPDw4PD''';
String newString = base64str.substring(22);
print(newString);
}
output
/9j/4AAQSkZJRgABAQAAAQABAAD/2wCEAAkGBw8PDw8PDxAPDw4PD
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.