• tkinter显示图片


    效果

    在这里插入图片描述

    代码解析

    打开和显示图像

    def open_image():
        file_path = filedialog.askopenfilename(title="选择图片", filetypes=(("PNG文件", "*.png"), ("JPEG文件", "*.jpg;*.jpeg"), ("所有文件", "*.*")))
        if file_path:
            img = Image.open(file_path)
            img = img.resize((300, 300), Image.Resampling.LANCZOS)  # 调整图片大小
            img_tk = ImageTk.PhotoImage(img)
            img_label.config(image=img_tk)
            img_label.image = img_tk  # 防止垃圾回收
    
    
    • file_path =
      filedialog.askopenfilename(…):打开一个文件选择对话框,让用户选择一个文件。title
      参数设置对话框的标题,filetypes 参数用于过滤显示的文件类型(PNG 文件、JPEG 文件和所有文件)。
    • if file_path::检查用户是否选择了文件。
    • img = Image.open(file_path):使用 Pillow 库打开图像文件。
    • img = img.resize((300, 300), Image.Resampling.LANCZOS):调整图像大小为
      300x300 像素,使用 LANCZOS 作为重采样滤波器。
    • img_tk = ImageTk.PhotoImage(img):将图像转换为 PhotoImage 对象,以便在 tkinter
      中显示。
    • img_label.config(image=img_tk) 和 img_label.image =
      img_tk:更新标签以显示选中的图像,并存储 img_tk 对象以防止被垃圾回收。

    代码

    import tkinter as tk
    from tkinter import filedialog
    from PIL import Image, ImageTk
    
    def open_image():
        file_path = filedialog.askopenfilename(title="选择图片", filetypes=(("PNG文件", "*.png"), ("JPEG文件", "*.jpg;*.jpeg"), ("所有文件", "*.*")))
        if file_path:
            img = Image.open(file_path)
            img = img.resize((300, 300), Image.Resampling.LANCZOS)  # 调整图片大小
            img_tk = ImageTk.PhotoImage(img)
            img_label.config(image=img_tk)
            img_label.image = img_tk  # 防止垃圾回收
    
    root = tk.Tk()
    root.title("图片显示示例")
    
    open_button = tk.Button(root, text="打开图片", command=open_image)
    open_button.pack(pady=20)
    
    img_label = tk.Label(root)
    img_label.pack(pady=20)
    
    root.mainloop()
    
    
  • 相关阅读:
    docker&docker-copose_限制容器cpu和内存
    Spring——以IOC、AOP为核心的轻量级框架
    电容笔和apple pencil的区别大吗?Ipad好用电容笔推荐
    数据导入与预处理——实验2
    AIR32F103(三) Linux环境基于标准外设库的项目模板
    C# 去除utf-8 BOM头
    wsl ubuntu 安装的正确方式
    linux 进程 CPU耗费较高排查
    RabbitMQ的使用
    人工神经网络的典型模型,人工神经网络模型定义
  • 原文地址:https://blog.csdn.net/summerriver1/article/details/140111764