0

私は自分の画面からシーンを記録したいが、特定のピクセルカラーを含むものだけを保持したい。 私はすでにこのためのpythonを使用してscreengrabberを書かれている:画面からグラブしたときのfpsの増加

import PIL.ImageGrab 

def get_pixel_colour(i_x, i_y): 
    return PIL.ImageGrab.grab().load()[i_x, i_y] 

print get_pixel_colour(0, 1) 

i= 0 
while (True): 
    i=i+1 
    x = PIL.ImageGrab.grab() 
    print i 
    x.save("tm\screengrab"+ str(i) +".bmp") 

事は毎秒私のフレームは、ビデオを生成するために十分ではないです。私は少なくとも25 fpsが必要だと思います。スクリーングラバーのパフォーマンスを向上させて動作させるにはどうすればよいですか?可能であれば、私はC++で熟達していないので、Pythonをプロダクション言語として使用したいと考えています。

おそらくPython用のコンパイラのようなものがありますか?

+0

問題のコードに改行や字下げの問題があります。問題を修正してください。 –

+1

私はそれを修正したと思う - @タラッシュ、これはあなたが意味していることを確認できますか? –

答えて

0

画面の大きさはどれくらいですか?

1920x1080の画面を25fpsでスクリーンし、25fpsでbmpに書き込む場合は、はるかに優れたハードウェアと、まったく別のソフトウェアアプローチが必要になります。

+0

私は1024x798の解像度で私の画面を取得します。私は新しいハードウェアではなく最適化でこれを修正したいと考えています。私は例えばシステム自体以外の別のハードディスクに書き込むことができます – tarrasch

+0

これはまだ1つのディスクへのランダム書き込みのために高い60Mb/sです - PILが効率的であると仮定しても –

+0

これをjpgに変更しました。それが役立つかどうかを見てください。 1秒あたりの書き込み回数を表示するためにコードを変更する方法を教えてください。 – tarrasch

関連する問題