Python
 Computer >> コンピューター >  >> プログラミング >> Python

保存せずにPython Tkinterウィンドウにスクリーンショットを表示する方法

Tkinterは、GUIベースのアプリケーションを作成・開発するためのPython標準ライブラリです。画像を表示する際には、PIL(Pillow)ライブラリを使用します。

ここでは、ウィンドウのスクリーンショットを撮影し、キャプチャした画像を別のウィンドウに表示するアプリケーションの作成方法を紹介します。以下の手順に従って実装できます。

  • 必要なライブラリをインポートする

  • スクリーンショットを撮影するためのボタンを作成する

  • スクリーンショットを撮影する関数を定義する

  • 関数内で、キャプチャ対象の座標(coords)と範囲(region)を指定する

  • Toplevelウィンドウを作成し、ラベルウィジェットで画像を表示する

  • ウィジェットを配置して、出力画像を表示する

コード例

# 必要なライブラリをインポート
from tkinter import *
import pyautogui
from PIL import ImageTk, Image

# Tkinterのフレーム(ウィンドウ)のインスタンスを作成
win = Tk()

# ウィンドウのサイズを設定
win.geometry("700x350")


# スクリーンショットを撮影する関数を定義
def take_screenshot():
   x = 500
   y = 500
   # 指定した座標でスクリーンショットを撮影
   im1 = pyautogui.screenshot(region=(x, y, 700, 300))

   # Toplevelウィンドウを作成
   top = Toplevel(win)
   im1 = ImageTk.PhotoImage(im1)

   # ラベルウィジェットに画像を追加
   image1 = Label(top, image=im1)
   image1.image = im1
   image1.place(x=0, y=0)

Button(win, text='Take ScreenShot', command=take_screenshot).pack(padx=10, pady=10)

win.mainloop()

実行結果

コードを実行すると、スクリーンショットを撮影するためのボタンが配置されたウィンドウが表示されます。

保存せずにPython Tkinterウィンドウにスクリーンショットを表示する方法

続いて「Take ScreenShot」ボタンをクリックすると、座標(x=500, y=500)を起点として、幅700px×高さ300pxの画面領域がキャプチャされ、新しいウィンドウに表示されます。

保存せずにPython Tkinterウィンドウにスクリーンショットを表示する方法

  1. tkinterでウィンドウを閉じる方法|destroy()メソッドの使い方を解説

    tkinterを使えば、Pythonで手軽にGUIアプリケーションを作成できます。しかし、タイトルバー右上の×ボタン以外の方法でウィンドウやフレームを閉じたい場合、どのように実装すればよいか悩むこともあるでしょう。そのようなときに役立つのが、ウィンドウを破棄して閉じるための .destroy() メソッドです。tkinterの各ウィジェットや属性は互いに独立しているため、「ウィンドウを閉じる処理」を専用の関数として分離して定義できます。これにより、ボタンのクリックイベントからウィンドウを閉じる動作を自由に制御可能です。サンプルコード# ライブラリをインポート from tkinter impo

  2. ボタンを使わずにiPhoneのスクリーンショットを撮る4つの方法を徹底解説

    iPhoneはApple社が展開する最も人気のある高性能デバイスの一つです。Appleが開発するiOSは、高品質な機能と高いセキュリティを兼ね備えたオペレーティングシステムであり、高速プロセッサや優れたカメラなどを搭載することで、ユーザーにプレミアムな体験を提供することを目指しています。 そんなiPhoneで最もよく使われる機能の一つが「スクリーンショット」です。多くの方はサイドボタン(電源ボタン)とホームボタンを同時に押す方法をご存じでしょう。しかし、「ホームボタンや電源ボタンが壊れている」「ボタン操作をしたくない」という場合でも、実はスクリーンショットを撮る方法はいくつかあります。この記事