Есть ли способ, чтобы подушка сохранить изображение под определенный размер? - PullRequest
0 голосов
/ 25 июня 2019

с помощью 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 голосов
/ 25 июня 2019

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)
...