Чтобы изменить размер изображения с помощью pillow
, вы можете использовать Image.resize ()
from PIL import Image
import urllib.request
import numpy as np
data = urllib.request.urlopen('https://i.stack.imgur.com/7bPlZ.png')
old_img = Image.open(data)
new_img = old_img.resize((20, 20))
new_img.save('my.png',quality=90)
new_img.show()
array = np.array(new_img)
print(array)
Но при изменении размера изображения вы можете создавать пиксели с полутонами.
Может быть, вы должны получить значения непосредственно из numpy.array
. У вас есть solid цветов, чтобы вы могли получить один пиксель из каждой ячейки - потому что каждая ячейка имеет размер 25x25
, поэтому это может быть:
new_array = old_array[::25,::25,:]
, и тогда вам не нужно преобразовывать изображение.
И если вы преобразуете этот массив в изображение, то он должен быть резче, чем создавать с помощью Image.resize
.
from PIL import Image
import urllib.request
import numpy as np
data = urllib.request.urlopen('https://i.stack.imgur.com/7bPlZ.png')
old_img = Image.open(data)
old_array = np.array(old_img)
new_array = array[::25,::25,:]
print(new_array)
new_img = Image.fromarray(new_array)
new_img.save('my.png',quality=90)
new_img.show()