2016-12-24 30 views
0

私はPythonのPygletモジュールを使用して作成したウィンドウのスクリーンショットを取得しようとしていました。私は、スクリーンショットをつかむためのコード行を使用:BlackスクリーンショットPygletを使用しました

pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot1.png') 

私はプログラムを実行していると、スクリーンショットのファイルが作成されると、ファイルは単なる黒でエラーの発生がありませんが。完全なコードは次のとおりです。

import pyglet 
from pyglet import gl 

window = pyglet.window.Window(500, 500) 

@window.event 
def on_draw(): 
    window.clear() 
    pyglet.graphics.draw(2, pyglet.gl.GL_LINES, ('v2i', (200, 200, 400, 400))) 


pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot1.png') 

pyglet.app.run() 

答えて

1

ウィンドウが何かを描画する前にスクリーンショットを撮っています。 イベントハンドラは、 event handling looppyglet.app.run()で開始した後でのみ呼び出されるためです。

@window.event 
def on_key_press(symbol, modifiers): 
    pyglet.image.get_buffer_manager().get_color_buffer().save('screenshot1.png') 

この方法では、スクリーンショットは、あなただけはウィンドウを描画することを可能にするキーを、押した後に撮影されています

一つの可能​​な解決策は、例えば、同様のイベントハンドラにスクリーンショット機能を置くことですその内容が最初です。

+0

実際には機能しました。ありがとうございました! –

関連する問題