gpt4 book ai didi

flutter ,飞镖 :io - convert Uint8List (from websocket) to a jpeg file I can draw

转载 作者:IT王子 更新时间:2023-10-29 06:55:32 27 4
gpt4 key购买 nike

我写了一个简单的 nodejs ws客户端连接时提供二进制 jpeg 文件的 websocket 服务器如下:

import WebSocket = require("ws");

console.log("Websocket is starting...");
// Setup websocket
const wss = new WebSocket.Server({ port: 8080 });

wss.on("connection", function connection(webSocket) {
console.log("Connected");

webSocket.on("message", function incoming(message) {
console.log("received: %s", message);
});

webSocket.on("error", function error(err) {
console.log(err.error);
});
webSocket.send(binaryJpegFile);
});

这段代码中有一个错误,因为它默认以文本形式发送,所以我替换了:

webSocket.send(binaryJpegFile);

与:

webSocket.send(binaryJpegFile, {binary: true});

现在我的 flutter 代码使用以下代码接收二进制 jpeg 文件作为 Uint8List:

  WebSocket socket;

void handleWebSocket(data) {
// Listen for incoming data. We expect the data to be a JSON-encoded String.
print("WebSocket data received");
if (data.runtimeType == String) {
print("String received");
String dataString = data;
print(dataString.length);
print(dataString);
} else if (data.runtimeType == Uint8List) {
print("Binary received");
Uint8List binaryIntList = data;
print(binaryIntList.lengthInBytes);
} else {
print("Unknown datatype recieved : " + data.runtimeType.toString());
}
}

connect() async {
if (socket == null) {
socket = await WebSocket.connect('ws://localhost:8080');
socket.listen(handleWebSocket);
}
socket.add('Hello, World!');
}

@override
void initState() {
super.initState();

connect();
}

谁能提供有关如何将 Uint8List 转换为我可以绘制的 jpeg 文件的提示?

最佳答案

首先尝试将 Uint8List 直接与 Image.memory 小部件一起使用。

例子:

new Image.memory(binaryIntList);

如果没有按预期工作。

您可以使用 image dart 包首先将字节解码为 Image 对象并将其编码为您希望的格式。

例子:

import 'package:image/image.dart' as I; //So that this does not conflict with the Image widget

然后

I.Image _img = I.decodeImage(binaryIntList);
_img = I.encodeJpg(_img);

然后将其用作

new Image.memory(_img.getBytes());

希望对您有所帮助!

关于 flutter ,飞镖 :io - convert Uint8List (from websocket) to a jpeg file I can draw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48638795/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com