如何从包含二进制数据的str构建图像?

时间:2018-10-10 23:50:32

标签: python django python-imaging-library

我有一个字节字符串,试图将其转换为文件,但我不断收到错误消息:

pelle

我实现的代码如下:

riga_corrente

从json文件读取字节字符串,它看起来像这样,但是它更长了,我刚刚复制了一些字符。

OS Error cannot identify image file <_io.BytesIO object at 0x03BBD330>

1 个答案:

答案 0 :(得分:0)

我不确定是否完全可以解决此问题,因为您遇到的问题是json.load(imageFile)["IMAGE_DATA"]将返回"b'bytes'",当它转换为字节数组时,您将正在做bytearray("b\'bytes\'"),这是错误的。

此行为在JSON解析器之间是特定的,并且不同的JSON解析器可能会以不同的方式解释

要么剥离包裹字节串的b'',要么做ast.literal_eval()

def test_view(request):
    with open("test_json.json") as imageFile:
        b = bytearray(
            ast.literal_eval(
                json.load(imageFile)["IMAGE_DATA"], 'utf8')

        print(b)

    image = Image.open(io.BytesIO(b))
    response = HttpResponse(content_type="image/jpeg")
    image.save(response, "JPEG")
    return response