我编写了这个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中做,请做一下建议。
答案 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()
有各种感兴趣的参数,其中包括interpolation
(examples here)和cmap
(色彩图)
根据this question删除轴和空格:
plt.axis('off')
plt.savefig("img.png", bbox_inches='tight')