Python 列表到 pil 图片

Python list to pil image

真的很快: 我需要将 python 列表转换为枕头图像。

列表可能如下所示:

[[(1,1,1,255),(2,2,2,255),(3,3,3,255)],

 [(1,1,1,255),(2,2,2,255),(3,3,3,255)],

 [(1,1,1,255),(2,2,2,255),(3,3,3,255)]]

基本上是一个二维数组,像素编码为 (R,G,B,Alpha)

我还有一个名为“大小”的变量,它是生成的图像大小,例如 [1000,2000](与示例列表不匹配,示例列表只是 [3,3] ofc。)

我知道这是一个完全菜鸟的问题。但是如何在不使用慢循环的情况下将此列表放入 Pillow RGBA 图像中?

您应该将其转换为 numpy 数组,然后可以从 numpy 数组构建图像:

import  numpy as np
from PIL import Image

a = [[(1,1,1,255),(2,2,2,255),(3,3,3,255)],
    [(1,1,1,255),(2,2,2,255),(3,3,3,255)],
    [(1,1,1,255),(2,2,2,255),(3,3,3,255)]]
x = np.asarray(a, dtype=np.uint8)
Image.fromarray(x)
>>> <PIL.Image.Image image mode=RGBA size=3x3 at 0x7F8C4096E640>