百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

杨幂图片赏析:python-tkinter的图片显示方法小结

toyiye 2024-08-22 02:21 4 浏览 0 评论

1 说明:

=====

1.1 图片来自今日头条正版免费图库,向杨幂表示致谢和致敬!

1.2 利用美女图片的赏析和图片的操作,熟悉python-tkinter的图片显示方法,增加学习兴趣,代码和讲解详细,由浅入深,小白秒懂,值得收藏。

1.3 tkinter是python的自带的GUI,目前本机python3.8自带tkinter,与python2的tkinter可能使用上有一点不一样,请注意。

1.4 图片先赏析一下,8张图片。

2 tkinter本身图片显示方法

===================

2.1 只能显示png和gif格式的图片,将3.jpeg,截图为3.png,即可。

2.2 tk.Label法加载图片,代码:

import tkinter as tk
root = tk.Tk()

#创建一个图片管理类
#photo = tk.PhotoImage(file="/home/xgj/Desktop/tkinter-pic/3.jpeg")  #报错
photo = tk.PhotoImage(file="/home/xgj/Desktop/tkinter-pic/3.png")  #可以
#把图片整合到标签类中
imgLabel = tk.Label(root,image=photo)
#四种方位:top, bottom, left, or right
imgLabel.pack(side=tk.TOP)

tk.mainloop()

2.3 canvas法:不是最佳的。

from tkinter import *
tk = Tk()

#创建一个图片管理类
photo = PhotoImage(file="/home/xgj/Desktop/tkinter-pic/3.png")

#画布大小设置
canvas = Canvas(tk,width=2000, height= 2000)
#canvas = Canvas(tk)  #默认画布大小不大,显示不全
#加载到canvas上,x和y是坐标点,是图片中心点的坐标点
#是图片长宽的一半
canvas.create_image(500,500,image = photo) 
canvas.pack()

tk.mainloop()

3 读取任意格式的图片

================

3.1 采用PIL库来实现

3.2 读取1.jpeg,效果图

3.3 代码,采用PIL库法和tk.Label标签法显示图片是最佳选择!

import tkinter as tk
from PIL import Image, ImageTk

root = tk.Tk()

#用PIL图片管理器读取和管理图片,可读取任意格式的图片
image = Image.open("/home/xgj/Desktop/tkinter-pic/pic/1.jpeg")
photo = ImageTk.PhotoImage(image)

#把图片整合到标签类中
imgLabel = tk.Label(root,image=photo)
#四种方位:top, bottom, left, or right
imgLabel.pack(side=tk.TOP)

tk.mainloop()

4 高级一点:

========

4.1 canvas图片显示并图片移动,现将图片大小修改为200和200,代码采用PIL法,此处省略。

4.2 效果图

4.3 代码:

#第1步:导入模块
from tkinter import *

#第2步:窗口相关设置
#窗口初始化
tk = Tk()
#设置窗口的大小宽x高+偏移量(x和y坐标点)
tk.geometry('1000x1000+500+200')
#设置窗口标题
tk.title('杨幂图片赏析')

#第3步:读取图片和画布显示
#创建一个图片管理类,将图片设置小一点200×200
photo = PhotoImage(file="/home/xgj/Desktop/tkinter-pic/33.png")
#画布大小和背景颜色设置
canvas = Canvas(tk,width=1000, height= 1000,bg='black')
canvas.create_image(100,100,image = photo)  
canvas.pack()

#第4步:定义图片移动函数
#上下左右方向键
def picMove(event):
    if event.keysym == 'Left':
        canvas.move(1,-5,0)
    if event.keysym == 'Right':
        canvas.move(1,5,0)
    if event.keysym == 'Up':
        canvas.move(1,0,-5)
    if event.keysym == 'Down':
        canvas.move(1,0,5)

#第5步:方向键和功能绑定到画布上
canvas.bind_all('<KeyPress-Left>',picMove)
canvas.bind_all('<KeyPress-Right>',picMove)
canvas.bind_all('<KeyPress-Up>',picMove)
canvas.bind_all('<KeyPress-Down>',picMove)

#第6步:tk循环挂起
tk.mainloop()

5 再高级一点:

===========

5.1 8张图片动态切换,pic文件夹,里面1~8.jpeg图片

5.2 效果图:

5.3 代码


#第1步:导入模块
from tkinter import *
from PIL import Image,ImageTk

#第2步:窗口初始化
root=Tk()
#设置窗口的大小宽x高+偏移量(x和y坐标点)
#root.geometry('1000x1000+500+200') #如果这个不设置,窗口大小就随图片大小自适应
#来高级一点,仅仅设置窗口的位置,大小不设置
root.geometry('+500+200') 
#设置窗口标题
root.title('杨幂图片动态赏析')

#第3步:读取图片
IMG=[]
#8张图加1
for i in range(1,9):
    im=Image.open('/home/xgj/Desktop/tkinter-pic/pic/'+str(i)+'.jpeg')
    img=ImageTk.PhotoImage(im)
    IMG.append(img)

#第4步:将图片显示在label标签上
counter=0
label=Label(root,image=IMG[counter])
label.grid(row=1)

#第5步:图片更改函数
def chimg():
    global label
    global counter
    #8张图减1
    if counter<7:
        counter+=1
    else:
        counter=0
    label.destroy()
    label=Label(root,image=IMG[counter])
    label.grid(row=1)

#第6步:按钮设置和功能调用
Button(root,text='换图',width = 15, height = 2,bg='pink',command=chimg).grid(row=0)
mainloop()

6 自动图片定时切换

===============

6.1 效果图

6.2 代码:

#coding=utf-8

#导入模块
from tkinter import *

#初始化Tk
top = Tk()
#标题名
top.title('定时更换图片')
#仅仅设置窗口的位置,大小不设置
top.geometry('+500+200') 

#注意png格式,自身图片管理器读取图片,格式png和gif
img1 = PhotoImage(file='/home/xgj/Desktop/tkinter-pic/pic/1.png')
img2 = PhotoImage(file='/home/xgj/Desktop/tkinter-pic/pic/2.png')
img3 = PhotoImage(file='/home/xgj/Desktop/tkinter-pic/pic/3.png')
img4 = PhotoImage(file='/home/xgj/Desktop/tkinter-pic/pic/4.png')

#初始化i
i = 1
#图片切换时间1000ms(1秒)
chtime=1000

#图片切换函数定义
def changeImage(i):
    #python %取余数
    if i % 3 == 1:
        label.configure(image = img1)
        i = i + 1
        label.after(chtime,changeImage,i)
    elif i % 3 == 2:
        label.configure(image=img2)
        i = i + 1
        label.after(chtime, changeImage,i)
    else:
        label.configure(image=img3)
        i = i + 1
        label.after(chtime, changeImage, i)

#标签定义和初始化显示图片1
label = Label(top, image=img1)
#标签位置pack设置
label.pack(fill=X,expand=1)
#切换间隔时间,函数调用,i
label.after(chtime,changeImage,i)
#循环挂起
top.mainloop()

超级齐全,分享处理。

相关推荐

# Python 3 # Python 3字典Dictionary(1)

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中,格式如...

Python第八课:数据类型中的字典及其函数与方法

Python3字典字典是另一种可变容器模型,且可存储任意类型对象。字典的每个键值...

Python中字典详解(python 中字典)

字典是Python中使用键进行索引的重要数据结构。它们是无序的项序列(键值对),这意味着顺序不被保留。键是不可变的。与列表一样,字典的值可以保存异构数据,即整数、浮点、字符串、NaN、布尔值、列表、数...

Python3.9又更新了:dict内置新功能,正式版十月见面

机器之心报道参与:一鸣、JaminPython3.8的热乎劲还没过去,Python就又双叒叕要更新了。近日,3.9版本的第四个alpha版已经开源。从文档中,我们可以看到官方透露的对dic...

Python3 基本数据类型详解(python三种基本数据类型)

文章来源:加米谷大数据Python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在Python中,变量就是变量,它没有类型,我们所说的"类型"是变...

一文掌握Python的字典(python字典用法大全)

字典是Python中最强大、最灵活的内置数据结构之一。它们允许存储键值对,从而实现高效的数据检索、操作和组织。本文深入探讨了字典,涵盖了它们的创建、操作和高级用法,以帮助中级Python开发...

超级完整|Python字典详解(python字典的方法或操作)

一、字典概述01字典的格式Python字典是一种可变容器模型,且可存储任意类型对象,如字符串、数字、元组等其他容器模型。字典的每个键值key=>value对用冒号:分割,每个对之间用逗号,...

Python3.9版本新特性:字典合并操作的详细解读

处于测试阶段的Python3.9版本中有一个新特性:我们在使用Python字典时,将能够编写出更可读、更紧凑的代码啦!Python版本你现在使用哪种版本的Python?3.7分?3.5分?还是2.7...

python 自学,字典3(一些例子)(python字典有哪些基本操作)

例子11;如何批量复制字典里的内容2;如何批量修改字典的内容3;如何批量修改字典里某些指定的内容...

Python3.9中的字典合并和更新,几乎影响了所有Python程序员

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

Python3大字典:《Python3自学速查手册.pdf》限时下载中

最近有人会想了,2022了,想学Python晚不晚,学习python有前途吗?IT行业行业薪资高,发展前景好,是很多求职群里严重的香饽饽,而要进入这个高薪行业,也不是那么轻而易举的,拿信工专业的大学生...

python学习——字典(python字典基本操作)

字典Python的字典数据类型是基于hash散列算法实现的,采用键值对(key:value)的形式,根据key的值计算value的地址,具有非常快的查取和插入速度。但它是无序的,包含的元素个数不限,值...

324页清华教授撰写【Python 3 菜鸟查询手册】火了,小白入门字典

如何入门学习python...

Python3.9中的字典合并和更新,了解一下

全文共2837字,预计学习时长9分钟Python3.9正在积极开发,并计划于今年10月发布。2月26日,开发团队发布了alpha4版本。该版本引入了新的合并(|)和更新(|=)运算符,这个新特性几乎...

python3基础之字典(python中字典的基本操作)

字典和列表一样,也是python内置的一种数据结构。字典的结构如下图:列表用中括号[]把元素包起来,而字典是用大括号{}把元素包起来,只不过字典的每一个元素都包含键和值两部分。键和值是一一对应的...

取消回复欢迎 发表评论:

请填写验证码