有没有办法让枕头将图像保存为特定大小?

时间:2019-06-25 13:28:52

标签: python matplotlib python-imaging-library

使用matplotlib,可以将图像保存为特定大小

这是一个例子

diamond = np.array([[  0,   0,   0,   0, 255,   0,   0,   0,   0],
       [  0,   0,   0, 255,   0, 255,   0,   0,   0],
       [  0,   0, 255,   0,   0,   0, 255,   0,   0],
       [  0, 255,   0,   0,   0,   0,   0, 255,   0],
       [255,   0,   0,   0,   0,   0,   0,   0, 255],
       [  0, 255,   0,   0,   0,   0,   0, 255,   0],
       [  0,   0, 255,   0,   0,   0, 255,   0,   0],
       [  0,   0,   0, 255,   0, 255,   0,   0,   0],
       [  0,   0,   0,   0, 255,   0,   0,   0,   0]], dtype=uint8)

使用此数组,我们可以将图像保存到磁盘

size = 36
my_dpi = mpl.rcParams['figure.dpi']
plt.subplots(figsize=(size/my_dpi, size/my_dpi))
plt.axis('off')
plt.imshow(diamond, cmap=mpl.cm.binary)
plt.savefig('diamond.png')

文件“ diamond.png”的分辨率为36 * 36。

类似的代码不适用于枕头

size = 36
my_dpi = mpl.rcParams['figure.dpi']
plt.subplots(figsize=(size/my_dpi, size/my_dpi))
plt.axis('off')
img = Image.fromarray(diamond, 'L')
img.save('diamond.jpg')
plt.imshow(img)

“ diamond.jpg”的分辨率为9 * 9。

有没有办法让枕头以36 * 36的分辨率保存图像?

1 个答案:

答案 0 :(得分:0)

img.resize返回输入图像的调整大小的副本。

size = 36
my_dpi = mpl.rcParams['figure.dpi']
plt.subplots(figsize=(size/my_dpi, size/my_dpi))
plt.axis('off')
img = Image.fromarray(diamond, 'L')
img.resize((size,size)).save('diamond.ppm')
plt.imshow(img)