Python, Pillowでクリップボードの画像を取得するImageGrab.grabclipboard()
Python, Pillow(PIL)のImageGrab.grabclipboard()
でクリップボードの画像を取得できる。バージョン9.1.0
(2022年4月)時点ではWindowsおよびmacOSのみで利用できる。
ここでは取り上げないが、ImageGrab
にはスクリーンショットを撮るImageGrab.grab()
もある。
なお、pyperclipを使うと、クリップボードの文字列(テキスト)をコピー&ペーストできる。
ImageGrab.grabclipboard()の使い方
ImageGrab.grabclipboard()
を実行すると、その時点でクリップボードにコピーされている画像が返される。Image
オブジェクトとして扱えるので、Pillowの様々な処理が可能。ここではsave()
で画像を保存している。
from PIL import ImageGrab, Image
img = ImageGrab.grabclipboard()
print(img)
# <PIL.JpegImagePlugin.JpegImageFile image mode=RGB size=200x71 at 0x105E68700>
print(isinstance(img, Image.Image))
# True
print(img.size)
# (200, 71)
print(img.mode)
# RGB
img.save('data/temp/clipboard_image.jpg')
クリップボードにコピーされているのが画像ではなくテキストなどの場合はNone
が返される。
img = ImageGrab.grabclipboard()
print(img)
# None