web-dev-qa-db-ja.com

pygameで画像を表示する方法は?

ビデオキャプチャを使用しているpygameに表示するためにウェブカメラから画像をロードしたい

from VideoCapture import Device
import pygame
import time
In=1
pygame.init()
w = 640
h = 480
size=(w,h)
screen = pygame.display.set_mode(size) 

while True:
    cam = Device()
    cam.saveSnapshot(str(In)+".jpg") 
    img=pygame.image.load(In)
    screen.blit(img,(0,0))
    In=int(In)+1
    In=str(In)

なぜこれが機能しないのですか?Pygameウィンドウは開きますが何も表示されませんか?

9
Rasovica

Pygameに 表示を更新 と指示する必要があります。

画像を画面にブリットした後、ループに次の行を追加します。

pygame.display.flip()

ところで、あなたはおそらくあなたが毎秒撮る画像の量を制限したいと思うでしょう。 time.sleepまたは pygame clock のいずれかを使用します。


from VideoCapture import Device
import pygame
import time
In=1
pygame.init()
w = 640
h = 480
size=(w,h)
screen = pygame.display.set_mode(size) 
c = pygame.time.Clock() # create a clock object for timing

while True:
    cam = Device()
    filename = str(In)+".jpg" # ensure filename is correct
    cam.saveSnapshot(filename) 
    img=pygame.image.load(filename) 
    screen.blit(img,(0,0))
    pygame.display.flip() # update the display
    c.tick(3) # only three images per second
    In += 1
14
sloth