2017-12-15 6 views
3

GUIからpygameを使ってスクリーンショット(前のフレームのblittedをコピー)を取ってサーフェス変数に割り当ててblitしますか?それをロードした後、ファイルにスクリーンショットを保存し、そして最終的にそれをブリッティングがなければ、スクリーンショットを撮ってから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() 

screenは通常のSurfaceオブジェクトであり、そのまま扱うことができます。スクリーンショットのブリッティングは通常どおり実行されます

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

ありがとうございました!そう簡単に、私はこれを考えなかったとは信じられない! – ThePithon

関連する問題