2017-12-15 26 views
3

GUI에서 파이 게임으로 캡쳐 한 스크린 샷 (이전 프레임의 복사본)을 표면 변수에 할당하고 블리 팅 할 수 있습니까? 구원의 스크린 샷은 다음로드 캡쳐 화면을 찍은 다음 blit합니다.

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() 

정말 unneccsary 보인다

, 그것을 블리 팅 마지막으로 다음 파일로 스크린 샷을 저장을로드하고, 없으면 ...받는 찍은 스크린 샷을이를 무시하고 직접 블럭 전송하는 방법이있다 GUI?

즉, 같은 뭔가

import pygame, os 

pygame.init() 
screen = pygame.display.set_mode((800, 400)) 
pic = screen.getLastFrameBlitted() 
screen.blit(pic, [0,0]) 
pygame.display.flip() 

답변

4

당신이 원하는 화면 언제든지의 사본을 가지고 변수에 저장할 수 있습니다.

screenshot = screen.copy() 

화면은 그냥 일반 Surface 객체이며 이와 같이 처리 될 수 있습니다. 스크린 샷을 블리딩하는 것은 평소대로 수행됩니다.

screen.blit(screenshot, (0, 0)) 
+0

정말 고마워요! 너무 단순해서, 나는 이것을 생각하지 않았다는 것을 믿을 수 없다! – ThePithon