以.png格式存储具有颜色的2D数组

时间:2017-07-05 09:34:26

标签: python arrays numpy bitmap pypng

我编写了这个Python程序来创建矩阵(2D数组)并将其保存到.png文件中。该程序编译并运行没有任何错误。甚至创建了IMAGE.png文件,但png文件无法打开。当我尝试在MSPaint中打开它时,它说:

  

无法打开图片。目前不支持有效的位图文件或其格式。

我的目标是根据存储在2D阵列中的数字创建RBG png图像。

源代码:

    import numpy;
    import png;

    imagearray = numpy.zeros(shape=(512,512));

    /* Code to insert one '1', '2', '3' in certain locations 
       of the numpy 2D Array. Rest of the location by default stores zero '0'.*/


    f = open("IMAGE.png", 'wb');
    f.write(imagearray);
    f.close();

我不明白我错在哪里因为没有错误信息。请帮助。

PS-我只想将矩阵保存为图像文件,所以如果你有更好更简单的方法在Python2.7中做,请做一下建议。

1 个答案:

答案 0 :(得分:2)

使用matplotlib绘制图像并保存。

import matplotlib.pyplot as plt
import numpy as np
a = np.random.uniform(size=(25, 25, 3))  # random 3D array
plt.imshow(a)
plt.savefig("img.png")

imshow()有各种感兴趣的参数,其中包括interpolationexamples here)和cmap(色彩图)

根据this question删除轴和空格:

plt.axis('off')
plt.savefig("img.png", bbox_inches='tight')