回答編集履歴

1

コメントを受けて追記

2021/05/18 11:37

投稿

hope_mucci
hope_mucci

スコア4447

test CHANGED
@@ -37,3 +37,33 @@
37
37
  cv2.destroyAllWindows()
38
38
 
39
39
  ```
40
+
41
+
42
+
43
+ ## 追記:マルチモニターの場合
44
+
45
+ `ImageGrab.grab()`の引数に `all_screens=True,`を入れると全てのスクリーンを一度に取得できます。Falseの場合は現在フォーカスがあるモニタ側の取得で、こちらがデフォルト動作。
46
+
47
+ そこから必要な部分を手動でクリッピングする必要があります。
48
+
49
+ 全体取得してからクリッピングしても良いですし、`bbox = (top, left, rigth, bottom)` オプションでクリップする座標を指定できます。
50
+
51
+
52
+
53
+ ```python
54
+
55
+ # 例:横並びHullHD2台のモニタがあったとして、右側のモニタだけをクリップする場合
56
+
57
+ img = ImageGrab.grab( all_screens=True, bbox=(1920,0,3840,1080) )
58
+
59
+ ```
60
+
61
+
62
+
63
+ モニタ番号等の指定は不可能です。全体取得した画像から自力で判断してください。
64
+
65
+
66
+
67
+ その他のオプションは公式リファレンスを参照:
68
+
69
+ [https://pillow.readthedocs.io/en/stable/reference/ImageGrab.html](https://pillow.readthedocs.io/en/stable/reference/ImageGrab.html)