繁体   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