当前位置: 首页 > news >正文

tkinter显示图片

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, ImageTkdef 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()
http://www.lryc.cn/news/388633.html

相关文章:

  • 000.二分查找算法题解目录
  • 数据资产赋能企业决策:通过精准的数据分析和洞察,构建高效的数据资产解决方案,为企业提供决策支持,助力企业实现精准营销、风险管理、产品创新等目标,提升企业竞争力
  • 【java开发环境】多版本jdk 自由切换window和linux
  • MySQL实训项目——餐饮点餐系统
  • 昇思MindSpore学习总结七——模型训练
  • AI时代创新潮涌,从探路到引路,萤石云引领千行百业创新
  • 计算机毕业设计Python深度学习美食推荐系统 美食可视化 美食数据分析大屏 美食爬虫 美团爬虫 机器学习 大数据毕业设计 Django Vue.js
  • 【鸿蒙学习笔记】鸿蒙ArkTS学习笔记
  • 广东行政职业学院数据智能订单班开班暨上进双创工作室签约仪式圆满结束
  • python与matlab微分切片的区别
  • MSPG3507——蓝牙接收数据显示在OLED,滴答定时器延时500MS
  • Linux 安装 Redis 教程
  • 【高考志愿】建筑学
  • Kubernetes的发展历程:从Google内部项目到云原生计算的基石
  • /proc/config.gz
  • 论坛万能粘贴手(可将任意文件转为文本)
  • 学习笔记——动态路由——OSPF(OSPF协议的工作原理)
  • Mybatis1(JDBC编程和ORM模型 MyBatis简介 实现增删改查 MyBatis生命周期)
  • 论文阅读YOLO-World: Real-Time Open-Vocabulary Object Detection
  • SM2的签名值byte数组与ASN.1互转
  • 云计算与生成式AI的技术盛宴!亚马逊云科技深圳 Community Day 社区活动流程抢先知道!
  • 【鸿蒙学习笔记】基础组件Progress:进度条组件
  • 前程无忧滑块
  • 一站式uniapp优质源码项目模版交易平台的崛起与影响
  • Python中vars用法
  • 【机器学习】基于Transformer的迁移学习:理论与实践
  • 如何应对情绪和培养理性的书
  • [数据集][目标检测]电缆钢丝绳线缆缺陷检测数据集VOC+YOLO格式1800张3类别
  • 【Git 学习笔记】Ch1.1 Git 简介 + Ch1.2 Git 对象
  • Python 中别再用 ‘+‘ 拼接字符串了!