What happens if you use movie.set_display to render to a surface instead of
the screen, and get what you need from the surface?

On Tue, May 26, 2009 at 1:08 PM, Vero E. Arriola
<blackzafiro....@gmail.com>wrote:

> Hello,
>
> I have been trying to use pygame to access a video frame by frame and
> extract the pixel values.  The frame is correctly rendered.  However,
> numeric and numpy get an array of zeros when I try to get the info from the
> display.  Is this a bug or am I missing something?  The code I use is as
> follows:
>
> import pygame, sys
> from pygame.locals import *
>
> filepath = "esponja.mpg"
> pygame.init()
> pygame.mixer.quit()
> pygame.surfarray.use_arraytype("numpy")
>
> movie = pygame.movie.Movie(filepath)
> size = w, h = movie.get_size()
> screen = pygame.display.set_mode(size)
> movie.set_display(screen, Rect((0, 0), size))
>
> def play():
>   i = 0
>   frame_number = 0
>   while(1):
>     frame_number = movie.render_frame(i)
>     frame = pygame.surfarray.array2d(screen) #copies
>     print frame
>     if frame_number < i:
>       break
>     i = i + 1
>   movie.rewind()
>
> I am using ubuntu 8.10.
> Thanks
>
> --
> "Todavía vivimos vuestros abuelos, aún es poderoso nuestro lanzadardos;
> conquistadores y sabios de tiempos antiguos: ¡Volved a vivir!"
>   Canto de los mexicas a Tlacaélel y Axayácatl, en su única derrota.
>

Reply via email to