我正在将文件类型图像发送到以python编写的云服务器。首先,我以字节列表的形式获取文件的内容,然后将其转换为json以发送到服务器。
List<int> imageBytes = img.readAsBytesSync();
var my_json = {"img":imageBytes};
var encoded = json.encode(my_json);
var channel = IOWebSocketChannel.connect("ws://34.73.158.146:5903");
channel.sink.add(encoded);
所以,请告诉我readAsBytesSync()如何将图像转换为字节,以及如何在python中将其转换回图像。 还请告诉我,在Flutter中编码和解码文件类型图像的最合适方法是什么?
答案 0 :(得分:0)
颤振:
var params = {
"image_file": base64Encode(_selectedImage.readAsBytesSync()),
};
final response = await http
.post("http://127.0.0.1:8000/users/upload_image_test/", body: params);
}
Python:
from PIL import Image,
import io
import base64
def post(self, request, *args, **kwargs):
received_data = request.data.get('image_file')
decode_data = base64.b64decode(sent_data)
byte_image = Image.open(io.BytesIO(decode_data))
byte_image.show()
我对其进行了测试,并且可以正常工作。成功测试后,请不要忘记将其标记为正确答案。