2016-12-19 4 views
0

スクリーンのある範囲でスクリーンショットを撮りたいと思います。そして、特定のラインのピクセル値をチェックしたいと思います(例えば、x_axisが400から800まで)。 私はimagegrab、gdi32.GetPixelなどのように複数の方法を試しました。読んでのピクセル値は多くの時間がかかるので、私もリストに変換しようとした、このピクセル値の配列を読むpython

im = ImageGrab.grab(box) 
pixels = list(im .getdata()) 

のようなものがであっても、これは速いようではありませんようです。私が間違っていることはありますか?

答えて

1

ImageGrabは、ピクセルをPIL形式(Pythonイメージングライブラリ:http://effbot.org/imagingbook/image.htm)で返します。.getdata()はすでにピクセルをシーケンスとして返します。 list()に再度ラッピングすることにより、同じ(高価な)操作を2回実行します。

im = ImageGrab.grab(box) 
pixels = im.getdata() 

あなたの好きな方法でピクセルを繰り返してください。

+0

こんにちは、ありがとうございます。しかし、これをim.getdata()の色に使用すれば教えてください:どのようにして3ピクセルごとに1ピクセルしかチェックしないように反復することができますか – user3345850

+0

ピクセルを処理してから2を処理せずに、次にピクセルを処理し、プロセス2などを処理しないことを意味しますか? – mprat

+0

はい、まさに,,,,, – user3345850

関連する問題