Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从字节生成图像的PIL问题_Python_Binary_Python Imaging Library - Fatal编程技术网

Python 从字节生成图像的PIL问题

Python 从字节生成图像的PIL问题,python,binary,python-imaging-library,Python,Binary,Python Imaging Library,我有长度为24707的字节。我有一个用字节创建图像的函数 def generate_image(data, num): resolution = (1, len(data) // 3) a = Image.frombytes('RGB', resolution, data) a.save(f'{temp_image_path}\\temp{num}.png') 当字节数的模为0时,它可以正常工作。然后,当我调用len(a.tobytes())时,结果是24705。这是

我有长度为24707的
字节。我有一个用字节创建图像的函数

def generate_image(data, num):
    resolution = (1, len(data) // 3)

    a = Image.frombytes('RGB', resolution, data)
    a.save(f'{temp_image_path}\\temp{num}.png')
当字节数的模为0时,它可以正常工作。然后,当我调用
len(a.tobytes())
时,结果是
24705
。这是因为该函数将字节转换为十六进制值,1个十六进制值需要3个字节。我尝试创建一个函数,如果数据的模不是零,它将添加0-3位

def generate_image(data, num):
    diff = len(data) % 3
    for i in range(3 - diff):
        data += bytes([0])

    resolution = (1, len(data) // 3)

    a = Image.frombytes('RGB', resolution, data)
    a.save(f'{temp_image_path}\\temp{num}.png')
之后,
a
的长度为
24708
。到目前为止,我已经有了很多想法,因为
数据每次都会有其他值。您知道如何将例如
24707
字节转换为图像,并且图像中会有那么多字节吗