我写了一个小脚本,通过用pygame
写入帧缓冲区,在USB显示器上显示专辑封面(在Raspberry Pi上)。脚本工作正常,专辑封面显示在屏幕上3秒钟:
def set_image(image):
""" Set the USB display image using pygame (320px x 240px) """
pygame.display.init()
size = (pygame.display.Info().current_w, pygame.display.Info().current_h)
black = 0, 0, 0
screen = pygame.display.set_mode(size)
pygame.mouse.set_visible(False)
pygame_image = pygame.image.fromstring(image.tobytes(), image.size, image.mode)
pygame_image_rect = pygame_image.get_rect()
screen.fill(black)
screen.blit(pygame_image, (40, 0))
pygame.font.init()
pygame.display.update()
time.sleep(3)
问题是当脚本完成时,pygame
(正确)清除帧缓冲区并且我的图像消失。有没有办法告诉它在退出时留下帧缓冲的内容?
答案 0 :(得分:0)
你在调用pygame.quit吗?
一般而言: - 不要运行窗口服务器(从控制台运行) - 使用翻转翻转到不同的表面 - 退出时不要打电话给pygame.quit。
很难保证之后会发生什么,但是翻转应该将屏幕缓冲区翻转到外壳使用的内存的不同部分,因此它不会被覆盖,如果你不打电话pygame.quit,它应该让它处于(坏)状态。虽然有些情况很有用。