python实现图片自动轮番播放
python可以制作一个简单的图片浏览器,
之前实现该功能的博客链接:https://blog.csdn.net/yql_617540298/article/details/112465549
不过这个需要我们手动才能切换图片,如果可以实现自动播放图片,这个功能差不多和电子相册一样。
接下来我简要记录我的学习笔记。
首先第一步:找一些图片
之前博客:https://blog.csdn.net/yql_617540298/article/details/112464575
将图片存放在本地文件夹内:
路径为:E:/Python/get_picture/picture
源码
参考博客:http://www.voidcn.com/article/p-komilske-bn.html
参考博客:https://www.seoxiehui.cn/article-138617-1.html
参考博客:https://blog.csdn.net/jdh99/article/details/52080514
import os
import threading
import tkinter as tkimport time
from PIL import ImageTk, Image#分辨率
resolution = (960, 600)
# 路径
Path = 'E:/Python/get_picture/picture'
# 播放间隔.单位:s
Interval = 2
# 当前照片计数
Index = 0scaler = Image.ANTIALIASwin = tk.Tk()
win_width = 1050
win_height = 650#将窗口设置在屏幕居中位置
sw = win.winfo_screenwidth()
sh = win.winfo_screenheight()
x = (sw - win_width) / 2
y = (sh - win_height) / 2img_box_x = 0
img_box_y = 0
img_box_w = win_width
img_box_h = win_height-50
img_box_bg = '#ffffff'win.title("电子相册")
win.geometry("%dx%d+%d+%d" % (win_width, win_height, x, y))bg = tk.Label(win, bg='#DDDDDD')
bg.place(height=win_height, width=win_width, x=0, y=0)#选择文件夹内的第一张图片名称
img_in = Image.open("E:/Python/get_picture/picture/1=4YwACDrS021.jpg")
w, h = img_in.size
size_new = ((int)(w * resolution[1] / h), resolution[1])
img_out = img_in.resize(size_new, scaler)
img = ImageTk.PhotoImage(img_out)
# img = ImageTk.PhotoImage(Image.open("load.jpg"))
panel = tk.Label(win, image = img)
panel.pack(side = "bottom", fill = "both", expand = "yes")#手动播放
def manual_img(e):global Indexfiles = os.listdir(Path)i = 0for x in files:# 判断文件是否存在if not os.path.isfile(Path + '\%s' % x):breakif i < Index:i += 1continueprint('手动处理图片', x, Index)if not (x.endswith('.jpg') or x.endswith('.JPG')):i += 1Index += 1if Index >= len(files):Index = 0continueimg_in = Image.open(Path + '\%s' % x)print(img_in)w, h = img_in.sizesize_new = ((int)(w * resolution[1] / h), resolution[1])img_out = img_in.resize(size_new, scaler)img2 = ImageTk.PhotoImage(img_out)# img2 = ImageTk.PhotoImage(Image.open(Path + '\%s' % x))panel.configure(image=img2)panel.image = img2Index += 1if Index >= len(files):Index = 0breakwin.bind("<Button-1>", manual_img)#切换图片
def image_change():global Indextime.sleep(3)while True:files = os.listdir(Path)i = 0for x in files:# 判断文件是否存在if not os.path.isfile(Path + '\%s' % x):breakif i < Index:i += 1continueprint('播放图片', x, Index)if not (x.endswith('.jpg') or x.endswith('.JPG')):i += 1Index += 1if Index >= len(files):Index = 0continueimg_in = Image.open(Path + '\%s' % x)w, h = img_in.sizesize_new = ((int)(w * resolution[1] / h), resolution[1])img_out = img_in.resize(size_new, scaler)img2 = ImageTk.PhotoImage(img_out)# img2 = ImageTk.PhotoImage(Image.open(Path + '\%s' % x))panel.configure(image=img2)panel.image = img2Index += 1if Index >= len(files):Index = 0time.sleep(Interval)def start_img():# 图片切换线程t = threading.Thread(target = image_change)t.start()bt_start = tk.Button(win, text = "开始播放", command = start_img)
bt_start.place(x = img_box_x + img_box_w / 2, y = img_box_y + img_box_h + 20)bt_stop = tk.Button(win, text = "退出播放", command = win.quit)
bt_stop.place(x = img_box_x + img_box_w / 2-70, y = img_box_y + img_box_h + 20)bt_manual = tk.Button(win, text = "手动播放", command = manual_img)
bt_manual.place(x = img_box_x + img_box_w / 2-140, y = img_box_y + img_box_h + 20)win.mainloop()
最终效果
通过点击“开始播放”按钮,开始播放图片,“手动播放”需要点击按钮实现播放,“退出播放”实现关闭窗口。
python实现图片自动轮番播放相关推荐
- 图片自动切换播放的一个效果(类似幻灯片播放)
首先,我们先来设置一个装自动切换播放图片的容器,给这个容器宽设为640px,高640px,并且让它上边距为100px,左右居中,再放入一张图片,设置图片不能重复,如果你还想让它美观点,也可以把图片设为 ...
- html 图片自动滚动播放,JS实现图片自动滚动(图片横向滚动)
实带道术用量确示常构端析以要效开的用,近不现的效果就是 一排图片自动横向滚动,鼠标指向的时候,暂定滚动,鼠标离开,继续滚要圈器是天的年编功小还久概据含直这请框结业未商屏页屏随会维气大机域页效实一应控高 ...
- html图片自动滚动播放器,jQuery+css实现图片滚动效果(附源码)
bxCarousel参数说明: move:每次滚动移动图片的数量,默认为4. display_num:展示图片的数量,默认为4. speed:图片滚动速度,默认为500毫秒. margin:图片间的间 ...
- html 图片自动滚动播放,javascript+html5实现仿flash滚动播放图片的方法
本文实例讲述了javascript+html5实现仿flash滚动播放图片的方法.分享给大家供大家参考.具体如下: html部分: css部分: body{ margin: 0px; padding: ...
- html 图片自动滚动播放,CSS3实现图片滚动播放效果
CSS3实现图片滚轮效果 在平常我们使用一些滚动图片的效果,都是用javascript代码(JQuery)实现,但是在如今Html5和CSS3盛行的时代,可以替代javascript代码来实现一些常见 ...
- html 图片自动滚动播放,小卖弄:纯CSS实现图片滚动播放效果
一.效果抢先 如果您手头上的浏览器是FireFox6+,或者教新版本的Chrome或是Safari浏览器,就可以看到类似上面截图的效果.完全CSS挑大梁,JS请假回家相亲去了. 二.原理简述 显然,要 ...
- html 图片自动滚动播放,CSS3如何实现图片滚动播放效果(附代码)_WEB前端开发...
什么是h5制作?_WEB前端开发 h5制作的意思是H5广告,大多是在微信上宣传营销使用的,而HTML5是第五代HTML的标准,可以说,H5都是基于 HTML5 实现的,包括目前我们看到的大部分网页,基 ...
- Python+PIL 图片自动打水印
该程序的功能是,批量给图片打水印,水印居中显示,默认透明度50% 废话不多说直接上代码 from PIL import Image import os# 图片输入路径 input_dir = 'img ...
- Python 实现图片轮播及音乐循环播放
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/enland_lan/article/d ...
最新文章
- C语言:使用命令行参数用字符串读取流和输出流进行文本文件的复制
- Intel Realsense D435 关于深度摄像头获取实际深度坐标时的常见问题及可能的解决方案
- 【Linux网络编程】网络字节序和地址转换
- 从默认的 _id 字段中,取得时间信息
- 最大公约数和最小公倍数 模板
- html相对定位向上偏移,使用CSS的相对定位和偏移量
- 5分绩点转4分_U19男篮世界杯 | 郭昊文空砍23分4篮板5助攻 国青72-86负菲律宾
- Hybird A* 算法
- 软件测试个人绩效模板,测试工程师kpi模板.doc
- 项目管理能力提升四要素
- UML入门1:事物和事物关系简介
- Oracle数据库Blob字段存储文本文件
- Visi如何使用Weave和Docker
- html 颜色混搭_混搭油漆调色板,教用户基本的颜色理论
- 1+X Web前端等级考证 | PHP 技术与应用(中级重点)
- [GridView]解决js-xlsx导出Excel时数字太长变为科学计数的问题
- 流水不腐,户枢不蠹。运动多些。
- 清理计算机磁盘碎片,电脑磁盘碎片清理我帮你
- android硬编解码MediaCodec
- 阿里云服务器拼团活动-转发阿里云最新官方推荐拼团活动!
热门文章
- 顶尖的语音识别软件――Nuance Recognizer_语音识别_CTI论坛
- VueRouter(记录)
- batocera游戏整合包_安装游戏时电脑报错?提示XXX文件缺失?一个软件完美解决...
- ffmpeg函数介绍
- ES 处理日志字段超出 1000 引发的报错
- 不受支持的SQL类型1111
- NYOJ266 - 字符串逆序输出
- java数列的个位数求和_java二位数组相加
- 不同专业领域使用计算机的例子,基于事例推理及遗传算法的应用-计算机应用技术专业论文.docx...
- qoq是什么意思的缩写_有意思,“TTFN”居然是“再见”的缩写词,具体是指什么呢?...