截屏然后blit它

问题描述 投票:4回答:1

有没有办法从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()
python image python-3.x pygame screenshot
1个回答
4
投票

您可以随时获取屏幕副本并将其保存在变量中。

screenshot = screen.copy()

screen只是一个常规的Surface对象,可以这样处理。模仿屏幕截图照常完成

screen.blit(screenshot, (0, 0))
© www.soinside.com 2019 - 2024. All rights reserved.