Python, Pillowでクリップボードの画像を取得するImageGrab.grabclipboard()

Posted: | Tags: Python, Pillow, 画像処理

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

関連カテゴリー

関連記事