有没有办法从GUI中使用pygame截取屏幕截图(前一帧的副本blitted),将其分配给表面变量并进行blit?没有将屏幕截图保存到文件,然后加载它,最后blitting它,
import pygame, os
pygame.init()
screen = pygame.display.set_mode((800, 400))
def TakeScreenShot(screen):
pygame.image.save(screen, 'ScreenShot.png')
pic = pygame.image.load(os.path.join('ScreenShot.png')).convert()
return pic
pic = TakeScreenShot(screen)
screen.blit(pic, [0,0])
pygame.display.flip()
保存的截图然后加载似乎真的不必要...是否有一种方法绕过这个并直接blit截图到GUI?
即,像,
import pygame, os
pygame.init()
screen = pygame.display.set_mode((800, 400))
pic = screen.getLastFrameBlitted()
screen.blit(pic, [0,0])
pygame.display.flip()
您可以随时获取屏幕副本并将其保存在变量中。
screenshot = screen.copy()
screen只是一个常规的Surface对象,可以这样处理。模仿屏幕截图照常完成
screen.blit(screenshot, (0, 0))