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