前回、Pythonでデスクトップのスクリーンショットを撮る方法をまとめました。
それを踏まえてコードを書いていたら、「OSError: Pillow was built without XCB support」というエラーに遭遇。ナンデダロウ?
ライブラリ「Pillow」をインストール済みなのに、出てきたこのエラー。その対処法をまとめます。
原因は?
ImageGrab.grab()で範囲指定する時、「bbox=」の書き方を間違うとこのエラーが出ます。
from PIL import ImageGrab
a = ImageGrab.grab(100,100,200,200) # エラーになる
a.show()
このコードは、「bbox=」の座標に「()」をつけ忘れたため、「include_layered_windows」以下の引数に数字を指定することとなり、エラーになります。
対処法は?
「bbox=」を正しく指定します。
from PIL import ImageGrab
a = ImageGrab.grab((100,100,200,200))
a.show()
こうすれば、何の問題も起こりません。
まとめ
「OSError: Pillow was built without XCB support」が出る原因は、「ImageGrab.grab()」の引数指定が間違っている時です。
1人でプログラミングをしていると、盲点に気づけないことも多いです。
初歩的なミス、と言われれば、それまでですけどね。反省です。