我正在尝试截取电影的每一帧以进行其他处理。 但是,当我运行它时,我得到的只是打印出的换行符。 在我以任何方式杀死程序后,我得到一个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()
这是我的第一个问题,请说如果我遗漏了任何内容:)
答案 0 :(得分:0)
我相信,从文档中读到,它实际上会让电影“砸”到你的表面。所以在pygame中你可以保存表面。假设这应该可以使用pygame.image.save(screen, "screenshot.bmp")
这是因为显示器采用曲面的属性。因此,在图像下的pygame文档中,您可以找到我上面使用的函数save
。只要你先暂停电影(获得准确的图像),就应该有电影的截图。
干杯!