截图然后blit它
Take screenshot then blit it
有没有办法从 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))
有没有办法从 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))