我正在尝试将图像数据从我的 nodejs express 服务器发送到颤动。我从另一台服务器接收图像数据作为缓冲区Appwrite
并将其解码为 base64 字符串,然后发送该字符串,在我的颤振应用程序上接收到该字符串后,我尝试对其进行解码并显示图像,但显示失败并显示错误消息
服务器端
const getPhoto = async function(req, res){
var data = await api.getStorage().getFilePreview('61579ced0');
console.log("raw data -------------------------------\n")
console.log(data);
var base64 = data.toString('base64');
console.log("base 64 data -------------------------------\n")
console.log(base64);
var obj = new Object();
obj['data'] = base64;
res.send(obj);
};
原始数据格式
下面是输出console.log(data);
编码形式(base 64)
下面是输出var base64 = data.toString('base64');
颤振侧
模型
@JsonSerializable()
class ImageResponse {
String data;
ImageResponse(this.data);
factory ImageResponse.fromJson(Map<String, dynamic> json) =>
_$ImageResponseFromJson(json);
Map<String, dynamic> toJson() => _$ImageResponseToJson(this);
Uint8List getImage() {
return base64Decode(data);
}
}
显示图像
FutureBuilder<Uint8List>(
future: bloc.getPhoto(),
builder: (BuildContext context,
AsyncSnapshot<Uint8List> snapshot) {
if (snapshot.hasData) {
return Image.memory(snapshot.data);
} else {
return FittedBox(
fit: BoxFit.contain,
child: Image.asset(
'assets/images/placeholder.jpg',
),
);
}
})