前言 前段时间,写了篇博客关于Python自制一款炫酷音乐播放器。有粉丝问我,音乐播放器为什么要用PyQt5,效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过PyQt5,能不能多分享一些这方面的开发案例? 今天就带大家,一起用Python的PyQt5开发一个有趣的自定义桌面动画挂件,看看实现的动画挂件效果! 下面,我们开始介绍这个自定义桌面动画挂件的制作过程。一、核心功能设计 总体来说,我们需要实现将自己喜欢的动态图gif或者视频转成一个桌面动画挂件,知识点主要包含了对GIF图视频解析,人像提取分割,PyQt5窗体设置,自定义挂件动画实现,ico图标生成,程序打包等。 拆解需求,大致可以整理出我们需要分为以下几步完成:对gif或者视频进行逐帧解析,获取转换的图片,提取图像中人体区域,并对图片进行批量尺寸大小修改替换初始化设置动画挂件窗体显示效果,窗体位置、大小等桌面动画挂件功能实现,动画轮播、鼠标控制挂件位置拖动挂件打包图标设置、打包配置二、实现步骤 1。解析提取,修改图片 GIF图解析: Gif动态图资源大家可以根据自己的喜好,自己选择。博主就用之前写过的仙女蹦迪动态Gif来演示效果。 首先我们需要将Gif动态图按照每一帧进行解析,转换成图片格式。代码如下: 这样就可以把动态Gif图转换成图片了,效果如下: 视频解析: 同理,对视频解析,也是按照每一帧进行解析,转换成图片格式。核心代码如下: 效果如下: 逐帧提取的图片已经拿到了,下面我们需要对这些图片中的人像进行分割提取。 人像分割: 我们调用的是百度开放的人体分析接口百度AI开放平台链接。 这里面我们可以创建一个人像分割的应用,其中的APIKey及SecretKey后面我们调用人脸识别检测接口时会用到。 我们可以看到官方提供的帮助文档,介绍地很详细。如何调用请求URL数据格式,向API服务地址使用POST发送请求,必须在URL中带上参数accesstoken,可通过后台的APIKey和SecretKey生成。这里面的APIKey和SecretKey就是我们上面提到的。 那我们如何获取空背景的人像图片呢?根据API文档,可以看到里面有个type属性设置为foreground就可以提取空背景的人像图片。 人像分割的接口流程基本就已经清楚了,可以进行代码实现了。 这样我们就可以根据图片,进行人像分割,提取出空背景的人像图。效果如下: 如果提取的人像图片大小不符合我们的要求,我们还可以对图片大小进行调整。 我们需要的空背景图片已经拿到了,接下来我们来实现桌面挂件功能。2。初始化动画挂件 这样图片挂件就可以显示出来,效果如下: 现在的桌面挂件是静态显示,下面我们可以通过计时器进行挂件动画轮播显示。3。动画挂件功能实现 动画轮播: 鼠标控制挂件位置拖动: 至此,自定义动画挂件功能已经实现完成,动画挂件效果如下: 4。打包配置 前段时间有粉丝问我,Python能不能打包成exe?如何打包呢?今天就通过这个来一起介绍下。 Python常用的打包工具是第三方库Pyinstaller,首先需要安装下pyinstaller。 接下来,我们需要打开命令窗口,切换到项目目录下再执行打包命令。 打包常用的参数如下:F表示生成单个可执行文件w表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!p表示你自己自定义需要加载的类路径,一般情况下用不到i表示可执行文件的图标 之前有小伙伴问我,打包的图标需要。ico后缀的图片,应该如何把普通图片转成图标格式。ico呢?Python当然可以帮你实现,今天就一起教给大家。核心代码如下: 图标得到了,下面我们就可以进行打包操作了。 打包完成之后,我们可以看见项目目录下会有生成的exe程序。 至此,整个自定义动画挂件就全部完成了,下面我们一起运行下exe看看动画挂件效果。 今天我们就到这里,明天继续努力! 若本篇内容对您有所帮助,请三连点赞,关注,收藏支持下。 创作不易,白嫖不好,各位的支持和认可,就是我创作的最大动力,我们下篇文章见!