2012-07-09 23 views
9

quiero cargar una imagen de cámara web para mostrar en pygame estoy usando VideoCapture¿Cómo mostrar la imagen en 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) 

¿Por qué se abre esta ventana no work.Pygame pero no se muestra nada?

+0

es su imagen con el nombre 1.jpg y en la misma carpeta? –

+0

amigo si mira el código que ve que saveSnapshot (str (In) + ". Jpg") – Rasovica

+0

puede usar 'pygame.camera' para tomar las imágenes y eliminar la dependencia de' VideoCapture' – steffen

Respuesta

13

Tienes que decirle a pygame update the display.

Añadir la siguiente línea en el bucle después blitting la imagen a la pantalla:

pygame.display.flip() 

Por cierto, es probable que desee limitar la cantidad de imágenes que toma por segundo. Utilice time.sleep o 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 
+1

Debería 'importar pygame .time' en lugar de solo 'time'. Uno (es decir, yo) puede confundirlo con el módulo de biblioteca de Python 'time'. Además, ¿qué sucede si decide importar el módulo de biblioteca 'time' más tarde? – steffen