簡體   English   中英

使用 pysimplegui python 插入圖像

[英]Inserting an image using pysimplegui python

我希望將保存在文件 'D:\Users\j84202301\Desktop\dog.jpg' 中的圖像加載到 python 中的 GUI 界面。 我怎樣才能做到這一點,而無需用戶按下按鈕? 到目前為止,我設法實現了下面的代碼,但我希望在程序運行時立即加載圖像,而不是在按下按鈕后加載。 有人可以幫幫我嗎?

import io
import os
import PySimpleGUI as sg
from PIL import Image

layout = [[sg.Image(key="-IMAGE-")],
          [sg.Button("Load Image")]
          ]
window = sg.Window("Image Viewer", layout)
while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break
    if event == "Load Image":
        image = Image.open(r'D:\Users\j84202301\Desktop\dog.jpg')
        image.thumbnail((200, 200))
        bio = io.BytesIO()
        image.save(bio, format="PNG")
        window["-IMAGE-"].update(data=bio.getvalue())
window.close()

在您的代碼中,當單擊'Load Image'按鈕時,它會使用從 JPEG 文件轉換的數據更新圖像。

要在程序啟動時立即加載此 JPEG 文件,只需在 Image 元素啟動時設置選項data

import io
import os
import PySimpleGUI as sg
from PIL import Image

image = Image.open(r'D:\Users\j84202301\Desktop\dog.jpg')
image.thumbnail((200, 200))
bio = io.BytesIO()
image.save(bio, format="PNG")

layout = [[sg.Image(data=bio.getvalue(), key="-IMAGE-")],
          [sg.Button("Load Image")]
          ]
window = sg.Window("Image Viewer", layout)

while True:
    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break

window.close()

或者在窗口完成后更新 Image 元素。

import io
import os
import PySimpleGUI as sg
from PIL import Image

image = Image.open(r'D:\Users\j84202301\Desktop\dog.jpg')
image.thumbnail((200, 200))
bio = io.BytesIO()
image.save(bio, format="PNG")

layout = [[sg.Image(key="-IMAGE-")],
          [sg.Button("Load Image")]
          ]
window = sg.Window("Image Viewer", layout, finalize=True)
window["-IMAGE-"].update(data=bio.getvalue())

while True:

    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break

window.close()

或者使用 Graph 元素,然后您可以在窗口完成時在放置圖像左上角的任何位置繪制圖像。

import io
import os
import PySimpleGUI as sg
from PIL import Image

image = Image.open(r'D:\Users\j84202301\Desktop\dog.jpg')
image.thumbnail((200, 200))
bio = io.BytesIO()
image.save(bio, format="PNG")

w, h = (640, 480)
layout = [[sg.Graph((w, h), (0, h), (w, 0), key="-GRAPH-")],
          [sg.Button("Load Image")]
          ]
window = sg.Window("Image Viewer", layout, finalize=True)
window["-GRAPH-"].draw_image(data=bio.getvalue(), location=(50, 100))

while True:

    event, values = window.read()
    if event == "Exit" or event == sg.WIN_CLOSED:
        break

window.close()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM