将二进制列表转换为PNG格式的Python代码

4 投票
2 回答
3844 浏览
提问于 2025-04-16 15:47

请原谅我的无知,因为我刚开始接触图像处理。假设我有一个二进制值的列表 [1,0,0,0,1,0,1,0,0,0,0,1,1,0....],这些值代表了一幅黑白图像中的像素。我该如何从这个列表制作一个 .png 文件呢?

2 个回答

3

接着BasicWolf的例子说说:

from PIL import Image
import struct

size = 5, 5
arr = [1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1, 1, 1, 0, 0, 1, 0, 0, 1, 1, 0]
data = struct.pack('B'*len(arr), *[pixel*255 for pixel in arr])
img = Image.frombuffer('L', size, data)
img.save('image.png')

我觉得这就是你想要的...

4

可以使用Python图像库来实现这个功能。

这里有一个方法叫做 img = Image.frombuffer(mode, size, data),它可以从“原始”数据(一个字符串)创建一张图片。然后你可以通过 img.save('image.png', transparency=transparency) 将它保存为PNG格式的文件。

撰写回答