[英]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.