teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

コメントを受けて追記

2021/05/18 11:37

投稿

hope_mucci
hope_mucci

スコア4447

answer CHANGED
@@ -17,4 +17,19 @@
17
17
  cv2.imshow('figure',cv_img)
18
18
  cv2.waitKey(0)
19
19
  cv2.destroyAllWindows()
20
- ```
20
+ ```
21
+
22
+ ## 追記:マルチモニターの場合
23
+ `ImageGrab.grab()`の引数に `all_screens=True,`を入れると全てのスクリーンを一度に取得できます。Falseの場合は現在フォーカスがあるモニタ側の取得で、こちらがデフォルト動作。
24
+ そこから必要な部分を手動でクリッピングする必要があります。
25
+ 全体取得してからクリッピングしても良いですし、`bbox = (top, left, rigth, bottom)` オプションでクリップする座標を指定できます。
26
+
27
+ ```python
28
+ # 例:横並びHullHD2台のモニタがあったとして、右側のモニタだけをクリップする場合
29
+ img = ImageGrab.grab( all_screens=True, bbox=(1920,0,3840,1080) )
30
+ ```
31
+
32
+ モニタ番号等の指定は不可能です。全体取得した画像から自力で判断してください。
33
+
34
+ その他のオプションは公式リファレンスを参照:
35
+ [https://pillow.readthedocs.io/en/stable/reference/ImageGrab.html](https://pillow.readthedocs.io/en/stable/reference/ImageGrab.html)