Мне нужно реализовать лайф игру как.
Я работаю с Pyzo и
Python 3.7.1 (v3.7.1:260ec2c36a, Oct 20 2018, 14:57:15) on Windows (64 bits).
This is the Pyzo interpreter with integrated event loop for PYQT5.
Для этого мне бы хотелось, чтобы карта была картой мира, а не квадратом.
Таким образом, я получаю монохромное изображение. Я открываю это, я преобразовываю это в массив. Но я не могу отобразить это. Там нет ошибки, сообщение журнала, которое я установил в коде, кажется, показывает, что все в порядке, но окно с изображением не отображается. Я также попытался с изображением RGBA без большего успеха
Я также попытался после перезагрузки моего компьютера.
Изображение в формате BMP, сохраненное краской в растровом монохромном режиме. Я присоединился к нему
Спасибо за любые идеи, чтобы решить эту проблему.
Вот сообщения из моего кода
format: BMP mode: 1 palette: None
The image is 993 x 579
ok
[[1 1 1 ... 1 1 1]
[1 0 0 ... 0 0 1]
[1 0 0 ... 0 0 1]
...
[1 0 0 ... 0 0 1]
[1 0 0 ... 0 0 1]
[1 1 1 ... 1 1 1]]
0
(579, 993)
<class 'numpy.ndarray'>
<class 'numpy.uint8'>
should be displayed
Вот код
def Load_image(filename):
# try:
img = Image.open(filename)
print ('format: %s mode: %s palette: %s' % (img.format,img.mode,img.palette))
print ('The image is %d x %d' % img.size)
return img
# except:
print ("Unable to open %s" % filename)
return -1
def Img2Array(img):
# BytePerPixel = {'1': 1, 'RGB': 2, 'RGBA' : 4 }# 1: B&W, 3: RGB, 4: RGBA (A=Alpha : transparency)
# result = numpy.array(img.getdata(), numpy.uint8).reshape(img.size[1], img.size[0], BytePerPixel.get(img.mode))
result = numpy.array(img,dtype='int8')
print (result)
print(result[200,200])
print(result.shape)
print (type(result))
print (type(result[200,200]))
test = plt.imshow(result)
print ("should be displayed")
return result
fichiercarte = "C:\\Users\\mld\\Desktop\\python\\world-map1.bmp"
carte = Load_image(fichiercarte)
if (carte != None):
print ("ok")
ndArrayCarteDuMonde = Img2Array (carte)
Монохромная карта мира