我如何在 python tkinter 中显示调整大小的图像

克德鲁

我正在使用 Tkinter 在 Python 中开发 GUI 来学习图像处理。GUI 的流程是这样的

加载图像 (jpg|png|...) => 调整大小/缩略图 (240 * 240) => 预览图像

from Tkinter import *
import PIL
class Window:       
    def __init__(self, master):
        master.title("Image Processing test")
        master.minsize(800, 400)

        from PIL import Image
        im = Image.open("IMG_0562.png")
        size = 240, 240
        im.thumbnail(size)
        p = im.tobytes()

        # photo = PhotoImage(file="IMG_0562.gif")
        # photo = BitmapImage(data=p)
        w = Label(root, image=photo, width=240, height=240).grid(row=20, column=2)
        self.photo = photo


root = Tk()

window = Window(root)

root.mainloop()

我的问题是我无法以正确的格式获取图像以在Label. 由于Label只接受PhotoImageBitmapImagePhotoImage不支持pngjpg归档。所以我使用ImagefromPIL来加载和调整我的彩色图像。我也试过Image.tobitmap()Image.tobytes()但在这种情况下没有用。

克德鲁

通过使用将图像保存在内存中解决了问题 io.BytesIO()

from Tkinter import *
from PIL import Image
import io

class Window:       
    def __init__(self, master):
        master.title("Image Processing test")
        master.minsize(800, 400)

        im = Image.open("IMG_0562.png")
        size = 240, 240
        im.thumbnail(size)
        b = io.BytesIO()
        im.save(b, 'gif')
        p = b.getvalue()
        photo = BitmapImage(data=p)
        w = Label(root, image=photo, width=240, height=240).grid(row=20, column=2)
        self.photo = photo

root = Tk()    
window = Window(root)
root.mainloop()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Tkinter中显式调整框架的大小?

在python Tkinter中调整大小和图像时出错

如何在tkinter中创建按钮的自调整大小网格?

如何在Python Imaging Library中调整大小调整后的图像的质量?

Python 3 Tkinter:如何在Tkinter文本中自动换行

我如何在python中编程按钮(没有Tkinter)?

如何在Tkinter中动态调整画布中图像的大小?

如何在python的tkinter中的网格中显示图像?

Python Tkinter,如何在Tkinter TreeView中获取某项的子项?

调整Canvas的大小使其等于Tkinter Python中的帧大小

如何调整从Tkinter的选项菜单中显示的图像的大小?

如何在Tkinter中调整按钮的大小?

如何使用Tkinter python显示带有上载按钮的图像并使用窗口调整大小(动态地)调整其大小,我需要添加上载按钮

如何在Python中使用Tkinter在Canvas中调整图像大小?

在tkinter中调整图像大小

如何在Tkinter python中替换标签?

如何在python中设置Tkinter以显示和更新变量?

Python Tkinter如何在画布中显示文本

如何在python中更快地调整图像大小

Python:如何在标签小部件(tkinter)中动态显示图像

Python tkinter 如何实时显示图像?

我如何在 python 3.6 的 tkinter 窗口内打开一个 jpg 图像?

如何从 url 在 python Tkinter 中显示图像

Python tkinter,在画布上调整透明图像的大小

Python Tkinter 显示图像

如何在tkinter python的表格中将blob显示为图像

如何使用 tkinter 调整此图像的大小?

如何在不在 Tkinter 中拉伸图像的情况下调整图像大小?

如何在 Tkinter 消息框中显示 python 脚本错误