Python 从字节生成图像的PIL问题
我有长度为24707的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。这是
字节。我有一个用字节创建图像的函数
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
字节转换为图像,并且图像中会有那么多字节吗