2012-04-09 2 views
0

Я загружаю изображение в python, что, на мой взгляд, является правильным, но он все еще не отображается. Я не знаю, слишком ли велико изображение или что.пытается загрузить растровое изображение в python

import pygame 
import math 

pygame.display.init() 
window = pygame.display.set_mode((600, 500)) 
mapImg = pygame.image.load("mapoftheusa.bmp") 

done = False 

while not done: 

    window.fill((0,0,0)) 
    evtList = pygame.event.get() 
    for evt in evtList: 
     if evt.type == pygame.QUIT: 
      done = True 

    window.blit(mapImg, (0,0)) #<<will not blit 

pygame.quit() 
+0

Таким образом, вы не получаете никаких ошибок или ничего - программа запускается, но изображение не отображается? –

+0

Да, это действительно странно – CRS

ответ

2

Вы забыли добавить вызов pygame.display.update() сразу после window.blit(mapImg, (0,0)).

Таким образом, ваш полный код должен быть:

import pygame 
import math 

pygame.display.init() 
window = pygame.display.set_mode((600, 500)) 
mapImg = pygame.image.load("mapoftheusa.bmp") 

done = False 

while not done: 

    window.fill((0,0,0)) 
    evtList = pygame.event.get() 
    for evt in evtList: 
     if evt.type == pygame.QUIT: 
      done = True 

    window.blit(mapImg, (0,0)) #<<will not blit 
    pygame.display.update() # solution: you forgot this... 

pygame.quit() 

pygame.display.update() обновляет окно (экран) с вашими чертежами. Если вы его не назовете, вы ничего не увидите. pygame.display.flip() также работает, но его следует использовать, когда используются двойные буферные или аппаратные поверхности.

Кроме того, я думаю, что лучше инициализировать pygame, вызвав pygame.init(), поскольку это будет инициализировать все его модули, включая дисплей.

Смежные вопросы