Pygame电影截图

时间:2014-03-09 15:04:25

标签: python pygame screenshot movie

我正在尝试截取电影的每一帧以进行其他处理。 但是,当我运行它时,我得到的只是打印出的换行符。 在我以任何方式杀死程序后,我得到一个Segmentation fault(core dumped)

为什么发生分段错误?我的代码或pygame或其他东西?

为什么我没有从程序中获得一些文字?

使用Python 2.7,Ubuntu

import sys
import os
if sys.platform == 'win32' and sys.getwindowsversion()[0] >= 5:
    os.environ['SDL_VIDEODRIVER'] = 'windib'
import pygame

pygame.init()
pygame.mixer.quit()
movie = pygame.movie.Movie(sys.argv[1])
screen = pygame.display.set_mode(movie.get_size())
movie.set_display(screen)

movie.play()
while movie.get_busy():
    print pygame.image.tostring(screen, 'RGB', False)
    if pygame.event.peek(pygame.QUIT):
        pygame.quit()
        exit()
    pygame.event.clear()
movie.stop()
pygame.quit()

这是我的第一个问题,请说如果我遗漏了任何内容:)

1 个答案:

答案 0 :(得分:0)

我相信,从文档中读到,它实际上会让电影“砸”到你的表面。所以在pygame中你可以保存表面。假设这应该可以使用pygame.image.save(screen, "screenshot.bmp")

这是因为显示器采用曲面的属性。因此,在图像下的pygame文档中,您可以找到我上面使用的函数save。只要你先暂停电影(获得准确的图像),就应该有电影的截图。

干杯!