顯示圖片

import customtkinter as ctk
from PIL import Image
from io import BytesIO
import requests


### 下載網路圖片並轉成 CTkImage
def download_image(url, size):
    response = requests.get(url) # 從指定的 URL 下載圖片
    image_data = BytesIO(response.content) # 將下載回來的二進位圖片資料轉成記憶體檔案
    pil_image = Image.open(image_data) # 使用 PIL 開啟圖片

    # 建立 CTkImage
    ctk_image = ctk.CTkImage(
        light_image=pil_image, # Light 模式使用的圖片
        dark_image=pil_image, # Dark 模式使用的圖片
        size=size # 設定圖片顯示大小,例如 (150, 150)
    )

    return ctk_image # 回傳建立完成的 CTkImage


### 主程式
def main():

    ### 建立主視窗
    app = ctk.CTk() # 建立 CustomTkinter 主視窗
    app.geometry("400x300") # 設定視窗大小,寬 400、高 300


    ### 下載圖片
    cat_image = download_image(
        "https://i.pinimg.com/1200x/41/e2/5f/41e25f50ab9c59bc18df85de4176d5b1.jpg", # 網路圖片網址
        (150, 150) # 設定圖片顯示大小,寬 150、高 150
    )


    ### 顯示圖片
    image_label = ctk.CTkLabel(
        app, # 指定 Label 放在主視窗 app 裡面
        image=cat_image, # 設定要顯示的 CTkImage
        text="" # 清空文字,只顯示圖片
    )

    image_label.pack(pady=30) # 將 Label 放入視窗,上下增加 30 像素的間距


    ### 啟動視窗
    app.mainloop() # 啟動事件迴圈,讓視窗持續顯示並等待使用者操作


### 程式進入點
if __name__ == "__main__":
    main() # 執行主程式