PySimpleGUI 无法显示 .jpg,只能显示 .png。如何在不触及原始文件的情况下将 .jpg 临时转换为 .png?
PySimpleGUI can't display a .jpg, only a .png. How can I temporarily convert the .jpg to a .png without touching the original file?
代码很简单
如果我使用此代码 (...{file_name}.jpg"),它会给我:“无法识别图像文件“.\downloaded_cards551.jpg”中的数据。只有当我使用图像和代码的 .png 版本时,它才有效。
但是,我不想更改我的实际文件或将它们复制到我的文件夹中。有没有什么办法可以在点击“显示”时暂时做到这一点,而不用改变原来的文件夹?
import PySimpleGUI as sg
layout = [
[sg.Button("Show")],
[sg.Image(key="myimg")],
]
window = sg.Window("Test", layout)
while True:
event, values = window.read()
if event == "Exit" or event == sg.WIN_CLOSED:
break
if event == "Show":
file_name = "27551"
file_image = f".\downloaded_cards\{file_name}.jpg"
window["myimg"].update(file_image)
您可以使用包调用 Pillow
(通过 pip install pillow
安装)。这是 PIL
.
的分支
首先,像这样导入枕头:from PIL import Image, ImageTk
然后,您可以像这样打开图像文件:img = Image.open('file_path_here')
终于可以做成这样了
window['myimg'].update(
data=ImageTk.PhotoImage(img),
)
完整代码:
import PySimpleGUI as sg
from PIL import Image, ImageTk #Image for open, ImageTk for display
layout = [
[sg.Button("Show")],
[sg.Image(key="myimg")],
]
window = sg.Window("Test", layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED: #There is no key call Exit so event == "Exit" is unimportant
break
if event == "Show":
file_name = "27551"
image = Image.open(f"./downloaded_cards/{file_name}.jpg") #I prefer /
window["myimg"].update(
data = ImageTk.PhotoImage(file_image)
) #update the myimg key
代码很简单
如果我使用此代码 (...{file_name}.jpg"),它会给我:“无法识别图像文件“.\downloaded_cards551.jpg”中的数据。只有当我使用图像和代码的 .png 版本时,它才有效。
但是,我不想更改我的实际文件或将它们复制到我的文件夹中。有没有什么办法可以在点击“显示”时暂时做到这一点,而不用改变原来的文件夹?
import PySimpleGUI as sg
layout = [
[sg.Button("Show")],
[sg.Image(key="myimg")],
]
window = sg.Window("Test", layout)
while True:
event, values = window.read()
if event == "Exit" or event == sg.WIN_CLOSED:
break
if event == "Show":
file_name = "27551"
file_image = f".\downloaded_cards\{file_name}.jpg"
window["myimg"].update(file_image)
您可以使用包调用 Pillow
(通过 pip install pillow
安装)。这是 PIL
.
首先,像这样导入枕头:from PIL import Image, ImageTk
然后,您可以像这样打开图像文件:img = Image.open('file_path_here')
终于可以做成这样了
window['myimg'].update(
data=ImageTk.PhotoImage(img),
)
完整代码:
import PySimpleGUI as sg
from PIL import Image, ImageTk #Image for open, ImageTk for display
layout = [
[sg.Button("Show")],
[sg.Image(key="myimg")],
]
window = sg.Window("Test", layout)
while True:
event, values = window.read()
if event == sg.WIN_CLOSED: #There is no key call Exit so event == "Exit" is unimportant
break
if event == "Show":
file_name = "27551"
image = Image.open(f"./downloaded_cards/{file_name}.jpg") #I prefer /
window["myimg"].update(
data = ImageTk.PhotoImage(file_image)
) #update the myimg key