Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PyPNG和2d Python列表制作2d图像_Python_Pypng - Fatal编程技术网

如何使用PyPNG和2d Python列表制作2d图像

如何使用PyPNG和2d Python列表制作2d图像,python,pypng,Python,Pypng,因此,在阅读自述文件时,我希望看到以下代码: 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列表转换

因此,在阅读自述文件时,我希望看到以下代码:

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
不支持三维矩阵

从_array的
源注释中:

“三维”一词的使用是为了营销目的 只有它实际上不起作用。请容忍我们。同时 享用免费小吃(如有要求),请使用 二维数组

相反,考虑NUMPY/PIL/OpenCV方法。


编辑:以下代码可以使用numpy和枕头工作:

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,你的代码现在就可以工作了

从使用纯python列表到PNG没有出路吗?@dcheng有,在我的回答中链接的另一个问题上有一个替代列表。我还将编辑此答案,向您展示如何使用numpy和pillow创建PNG文件。