python中利用tkinter和ImageTK进行圣诞快乐图片的显示

news2024/11/24 3:48:50

一、前言

python中使用tkinter加载“Merry Christmas“ 图片。

二、用python显示Merry Christmas图片

1. python中,tkinter中可以进行图形界面编程。tkinter库提供了各种控件,其中,可以使用PhotoImage和Label组合,进行“Merry Christmas“ 图片的显示,图片可以是jpg,jpeg,png,gif动图等。

2. tkinter是python中的自带的强大的图片编程(GUI)库,提供了常用的图形编程组件,使得python进行图形程序的设计和实现变得简洁。

3. 为了实现图片的显示,可以结合image和imagetk库来实现。

由于PhotoImage支持的图片格式有限,所以,通常,结合使用PILLOW库的ImageTk来实现图片相关功能。

三、效果图展示

效果图展示如下:

 

四、实现步骤

基本组件的使用:

PILLOW库的ImageTk的使用:

如果没有安装PILLOW插件,请安装插件,使用 “pip install PILLOW”命令安装即可
生成PhotoImage对象:

from PIL import Image
 
from PIL import ImageTk
 
img = Image.open(filePath)
 
img = ImageTk.PhotoImage(img)

 python tkinter库与PILLOW库的ImageTk的综合使用:

1. 首先,预先准备需要展示的图片文件(jgp,jpeg,png,gif等);

2. 导入需要的python库:

import tkinter as tk
from PIL import Image, ImageTk

3. 通过python tkinter库进行图片的创建和加载:

    1)普通图片(jpg,jpeg,png)的加载:

    img = Image.open('./christmas1.jpeg')
    photo = ImageTk.PhotoImage(img)

    2)动图(gif)的加载:

    img = tk.PhotoImage(file = 'christmas2.gif')
    label_img = tk.Label(root, image = img)
    label_img.grid(row=1, column=0, pady=10)

4. 用label进行显示:

    label_img = tk.Label(root, image=photo)
    label_img.grid(row=1, column=0, pady=10)

5. mainloop的调用:

root.mainloop()

五、python代码:

下面,展示了整个python代码:

# -*- coding: utf-8 -*-
# gui_main.py 文件
import os
import sys
import tkinter as tk
from PIL import Image, ImageTk

def main():
    root = tk.Tk()
    root.title('Merry Christmas')
    #root.geometry("800x600+600+150")

    time_str = "M e r r y   C h r i s t m a s ( 2 0 2 2 )"
    lable1 = tk.Label(root,text=time_str)
    lable1.grid(row=0, column=0, pady=10)

    #普通图片的加载
    img = Image.open('./christmas1.jpeg')
    photo = ImageTk.PhotoImage(img)
    label_img = tk.Label(root, image=photo)
    label_img.grid(row=1, column=0, pady=10)

    #gif图片的加载
    # img = tk.PhotoImage(file = 'christmas2.gif')
    # label_img = tk.Label(root, image = img)
    # label_img.grid(row=1, column=0, pady=10)

    root.mainloop()

if __name__ == '__main__':
    main()
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/116744.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【树莓派不吃灰】网络篇 Tcpdump iptables

目录1、一台主机上只能保持最多 65535 个 TCP 连接吗?2、tcpdump3、iptables❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-12-26 ❤️❤️ 本篇更新记录 2022-12-26 ❤️🎉 欢迎关注 🔎点…

RT-Thread 学习笔记(十四)--- 开启基于RTGUI的LCD显示功能(4)<demo组件的按键响应和焦点支持>

软件环境:Win7,Keil MDK 4.72a, IAR EWARM 7.2, GCC 4.2,Python 2.7 ,SCons 2.3.2 硬件环境:Armfly STM32F103ZE-EK v3.0开发板 参考文章:RT-Thread编程指南 RT-Thread_1.2.0lwiprtgui0.8.0 移植心得 RT-Thread RT…

2022/12/26 请你谈谈数据库事务机制?

1 事务四大特征 一般来说,事务是必须满足4个条件(ACID):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability&#…

软件测试工程职场发展细谈

前言 今天几个测试圈子的大佬约了饭局,席间彼此交流了很多关于职场工作上测试相关的话题,听了他们的一些观点很有启发,我自己对于聊的话题也做了一些描述和实际的案例说明。下面是聊的一些关键话题,我将交流的内容和个人观点整理…

(二)JavaScript

JavaScript 是一门跨平台、面向对象的脚本语言。JavaScript 是用来控制网页行为的,它能使网页可交互。 一、JavaScript 引入方式(P71) (1)内部脚本:将JS代码定义在HTML页面中 (2)外部…

ActiveMQ集群模式

目录 一、面试题 二、多节点集群是什么 三、zookeeperreplicated-leveldb-store的主从集群 四、官网集群原理图 五、部署规划和步骤 六、集群可用性测试 一、面试题 引入消息队列之后该如何保证其高可用性 二、多节点集群是什么 基于ZooKeeper和LevelDB搭建ActiveMQ 集…

API签名鉴权设计

鉴权作用 在实际的业务中,必然会存在和其他平台系统进行数据传输。这个时候出于对数据的保密要求,都会对接口(API)添加鉴权机制,识别调用方的真实身份,对未通过鉴权的请求不做任何业务处理,以帮…

国科大模式识别导论作业3:神经网络

目录题目代码data.pyutils.pynetwork.pymain.py结果整理一下近期作业中的编程题,仅供交流学习题目 本题使用的数据如下: 第一类 10 个样本(三维空间): [ 1.58, 2.32, -5.8], [ 0.67, 1.58, -4.78], [ 1.04, 1.01, -3…

OpenCV 图像旋转、平移、缩放

本文是 OpenCV图像视觉入门之路的第7篇文章,本文详细的进行了图像的缩放 cv2.resize()、旋转 cv2.flip()、平移 cv2.warpAffine()等操作。 OpenCV 图像旋转、平移、缩放目录 1 缩放图片 2 翻转图片 2.1 垂直翻转 2.2 水平翻转 2.3 水平垂直翻转 ​编辑 3 平移…

百度离线人脸识别SDK

1,采坑备忘 (1)8.1版本的SDK在spring-boot接口访问第一次正常,第二次之后JVM会奔溃,可能是java gc 处理C开出的内存有问题。 换6.1.3版本的SDK。 javaWindows百度离线人脸识别SDK6.1.3-Java文档类资源-CSDN下载javaW…

Harmony/OpenHarmony应用开发-转场动画页面间转场

在全局pageTransition方法内配置页面入场和页面退场时的自定义转场动效。 说明:从API Version 7开始支持。开发语言ets. 名称 参数 参数描述 PageTransitionEnter { type: RouteType, duration: number, curve: Curve | string, delay: number } 设置当前页面…

1998-2014年企业绿色发展数据库

1998-2014年工业企业的排放排污和环境治理等信息数据 1、时间:1998-2014年 2、数据来源:原环保部。 3、统计字段:主要有企业基本信息、生产信息、水环境、大气环境,内容涵盖了资源利用类指标(工业用水量、煤炭消费量…

YGG 与 Thirdverse 达成合作,将《足球小将》IP 带入 Web3

YGG 与 Thirdverse 建立了合作关系,Thirdverse 是一家专注于多人 VR 和 Web3 游戏的游戏工作室,在日本和美国分别设有办事处。 YGG 通过购买未来股权的简单协议(SAFE)参与了 Thirdverse 近期的 1500 万美元融资。这种合作关系将使…

FastAPI从入门到实战(16)——依赖项

依赖注入是耳熟能详的一个词了,听起来很复杂,实际上并没那么复杂,正常的访问需要接受各种参数来构造一个对象,依赖注入就变成了只接收一个实例化对象,主要用于共享业务逻辑、共享数据库连接、实现安全、验证、权限等相…

原油投资怎么样赚钱?原油投资赚钱技巧有哪些?

以前没有交易过原油的投资者,看到其他投资者从中获得了较好的盈利,也想通过原油投资来赚钱。那么原油投资到底能不能赚钱,是很多新手投资者比较想了解的问题。其实原油投资想盈利并不能全部依靠运气,只有掌握了原油投资赚钱技巧&a…

【Java基础】Java日志—什么是日志级别?如何配置数据源到不同的位置?配置文件内容都是什么含义?

目录 一、log4j1详情:记录器和日志级别 二、 log4j1详情:输出源【输出到不同的位置】 1、ConsoleAppender【将日志输出到控制台】 2、FileAppender【将日志输出到文件】 3、DailyRollingFileAppender【每日输出到一个新文件】 4、JDBCAppender【输…

FineReport开源报表系统-JS实现切换Tab块时进行数据联动

1. 概述 1.1 预期效果 在决策报表中,希望 Tab 块轮播切换时,可实现与报表块的数据联动。如下图所示: 1.2 实现思路 通过 JS 获取每个 Tab 块的轮播标题,转换为参数值,再通过控件进行界面传参,实现联动效果…

程序员工作五年后一般会怎样?

最近看到一些吐血言论“一个程序员工作5年后还没成为大牛,是不是该考虑别的路子了?”还有“程序员入行五年,有可能攒够80吗?”不是,程序员工作五年,是戳中了谁的痛点吗??大家对五年经…

128页4万字某智慧能源集团数字化管理平台项目建议书

【版权声明】本资料来源网络,仅用于行业知识分享,供个人学习参考,请勿商用。【侵删致歉】如有侵权请联系小编,将在收到信息后第一时间进行删除!完整资料领取见文末,部分资料内容: 方案设计 在当…

公司新来的软件测试工程师接私活被抓了,难怪他天天加班到凌晨

昨天和我一起进公司的测试部门同事上班接私活被老板抓了,这人才来不到两个月,每天加班到凌晨。刚开始还以为他是个卷王,没想到此人上班时间接单,用加班时间来完成公司需求,造成努力的假象。被老板在办公室骂了俩小时&a…