如何使用带有 2D Python 列表的 PyPNG 制作 2d 图像

How to make 2d images with PyPNG with 2D Python Lists

阅读自述文件后,我预计会出现以下代码:

import png
R = 10
G = 255
B = 0
color = [[ (R,G,B), (R,G,B), (R,G,B) ],
         [ (R,G,B), (R,G,B), (R,G,B) ]]

png.from_array(color, 'RGB').save("small_smiley.png")

输出 2x3 图像。

但是,我收到断言错误(未提供描述)。

我做错了什么吗?有没有一种方法可以将 2D python 列表转换为比乱用 PyPNG 更容易的图像文件?

谢谢

PyPNG 的 from_array 不支持 3 维矩阵。

来自 from_array 的来源评论:

The use of the term 3-dimensional is for marketing purposes only. It doesn't actually work. Please bear with us. Meanwhile enjoy the complimentary snacks (on request) and please use a 2-dimensional array.

相反,请考虑 Numpy/PIL/OpenCV 方法 described here


编辑: 以下代码有效,使用了 numpy 和 Pillow:

from PIL import Image  # Pillow
import numpy as np     # numpy

R = 10
G = 255
B = 0
color = [[ (R,G,B), (R,G,B), (R,G,B) ],
         [ (R,G,B), (R,G,B), (R,G,B) ]]

img = Image.fromarray(np.asarray(color, dtype=np.uint8))
img.save('small_smiley.png')

使用 PyPNG recent release 您的代码现在可以工作了!