【Python】クリップボードの画像を取得して保存する方法
クリップボードにコピーした画像をPythonで取得し、ファイルとして保存する方法を紹介します。Windowsでは Pillow の ImageGrab を使う方法がある一方でLinuxでは ImageGrab が動作しません。その代わりにLinuxでは xclip や xsel を利用することでクリップボードから画像を取得できます。
この記事では、Windows版とLinux版(Macでも可)の2パターンでクリップボードから画像を取得しファイルに保存する方法について解説します。
Windows限定
Pillow の ImageGrab モジュールを利用すると、クリップボード内の画像を取得できます。
from PIL import ImageGrab # クリップボードから画像を取得 image = ImageGrab.grabclipboard() if image: image.show() # 画像を表示 image.save("clipboard_image2.png") # 保存 else: print("クリップボードに画像がありません")
Linux(Mac)限定
LinuxやmacOSでは、xclipを使ってクリップボードから画像を取得する方法があります。
xclip コマンドがインストールされていない場合は以下のコマンドでインストールします。
sudo apt update sudo apt install xclip
ソースコードはこちら。
import subprocess # from PIL import Image # クリップボードの画像を clipboard_image.png に保存 with open("clipboard_image.png", "wb") as f: subprocess.run(["xclip", "-selection", "clipboard", "-t", "image/png", "-o"], stdout=f)
まとめ
Windows環境でクリップボードの画像を取得する方法としてImageGrab、Linux環境ではxclipを利用する方法を紹介しました。xclip を使う場合は -selection clipboard -t image/png -o オプションを指定することで画像データを取得できます。どちらもクリップボードの画像を直接 clipboard_image.png に保存し、Pillow で開くことが可能です。
スポンサーリンク