2016-04-16 35 views
0

私はpyautoguiのスクリーンショット機能を使用しようとしていました。スクリーンショットを撮るたびに画面の左上隅をキャプチャします。スクリーンショットを作成するために手作業で大きな領域を入力しても、残りの部分は黒くなります。Pyautogui - Screenshotが全画面をカバーしない

例:

example of image being created

私はこの問題を解決するために何ができますか?

このイメージを作っコード:

import pyautogui 
import time 
import sys 

im = pyautogui.screenshot('board.png',region=(0,0, 2000, 1000)) 
+0

あなたは私によく見えます。リージョンのサイズは一般的な画面サイズではないので奇妙に見えます。多分それが問題です。 'region'引数を残してみてください。デフォルトは全画面です。何が起こるかを見てください(または正しいモニタ解像度を入れてください)。 – martineau

+0

@martineau地域の引数を省略した場合、スクリーンショットは黒い領域のない画面のみを表示します。私はそれが高dpiの私の画面と関係があると思うが、私はこの問題をどのように解決するのか分からない。それが助けになると、ほとんどのx、yピクセル座標のようですpyautoguiは私の実際の画面座標よりも2.5倍小さいですが、私は画面全体のスクリーンショットを取得しようとしています。私はそれに私の画面の適切な次元を与えると、それはちょうど私の画面のほとんどを黒くする。 –

+0

PyAutoGUI(または内部的に使用するピロー)の制限またはバグである可能性があります。前者の現在のバージョン番号(0.9.33)から、それはまだ開発中のようです。あなたのグラフィックスカードのドライバにも問題があるかもしれません。最新のバージョンがインストールされていることを確認してください。すべてが最新のものであれば、私はPyAutoGUIを使ってバグレポートを提出します。 – martineau

答えて

0

私の周りpython-imaging-library-fails-to-grab-whole-screenから仕事を見つけ、とのGitHub pyautoguiの問題で#116:Scaling issue on Windows affecting screenshots #116。 デフォルトでは画面全体をキャプチャしないので、リージョンを手動で設定する必要があります。

import pyautogui 
from ctypes import windll 
user32 = windll.user32 
user32.SetProcessDPIAware() 
pyautogui.screenshot('my_screenshot.png', region=(0,0,1920,1080)) 
関連する問題