如何在python中解码dart编码的readAsBytesSync()字符串

时间:2019-01-19 12:09:24

标签: python encoding flutter bytestring

我正在将文件类型图像发送到以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中编码和解码文件类型图像的最合适方法是什么?

1 个答案:

答案 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()

我对其进行了测试,并且可以正常工作。成功测试后,请不要忘记将其标记为正确答案。