将二进制列表转换为PNG格式的Python代码
请原谅我的无知,因为我刚开始接触图像处理。假设我有一个二进制值的列表 [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格式的文件。