有没有办法从 GUI 中使用 pygame 截取屏幕截图(前一帧 blit 的副本),将其分配给表面变量并 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 对象,可以这样对待。 Blits 截图像往常一样完成
screen.blit(screenshot, (0, 0))
关于python - 截图然后blit它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47830982/