桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!

前段时间 , 写了篇博客关于Python自制一款炫酷音乐播放器 。 有粉丝问我 , 音乐播放器为什么要用PyQt5 , 效果是不是比Tkinter赞?PyQt5真的可以实现这些炫酷的UI画面吗?之前没接触过PyQt5 , 能不能多分享一些这方面的开发案例?
今天就带大家 , 一起用Python的PyQt5开发一个有趣的自定义桌面动画挂件 , 看看实现的动画挂件效果!
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
下面 , 我们开始介绍这个自定义桌面动画挂件的制作过程 。
一、核心功能设计
总体来说 , 我们需要实现将自己喜欢的动态图gif或者视频转成一个桌面动画挂件 , 知识点主要包含了对GIF图/视频解析 , 人像提取分割 , PyQt5窗体设置 , 自定义挂件动画实现 , ico图标生成 , 程序打包等 。
拆解需求 , 大致可以整理出我们需要分为以下几步完成:
对gif或者视频进行逐帧解析 , 获取转换的图片 , 提取图像中人体区域 , 并对图片进行批量尺寸大小修改替换
初始化设置动画挂件窗体显示效果 , 窗体位置、大小等
桌面动画挂件功能实现 , 动画轮播、鼠标控制挂件位置拖动
挂件打包图标设置、打包配置
二、实现步骤
1.解析提取 , 修改图片
GIF图解析:
Gif动态图资源大家可以根据自己的喜好 , 自己选择 。 博主就用之前写过的仙女蹦迪动态Gif来演示效果 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
首先我们需要将Gif动态图按照每一帧进行解析 , 转换成图片格式 。 代码如下:
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
这样就可以把动态Gif图转换成图片了 , 效果如下:
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
视频解析:
同理 , 对视频解析 , 也是按照每一帧进行解析 , 转换成图片格式 。 核心代码如下:
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
效果如下:
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
逐帧提取的图片已经拿到了 , 下面我们需要对这些图片中的人像进行分割提取 。
人像分割:
我们调用的是百度开放的人体分析接口–百度AI开放平台链接 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
这里面我们可以创建一个人像分割的应用 , 其中的APIKey及SecretKey后面我们调用人脸识别检测接口时会用到 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
我们可以看到官方提供的帮助文档 , 介绍地很详细 。 如何调用请求URL数据格式 , 向API服务地址使用POST发送请求 , 必须在URL中带上参数access_token , 可通过后台的APIKey和SecretKey生成 。 这里面的APIKey和SecretKey就是我们上面提到的 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
那我们如何获取空背景的人像图片呢?根据API文档 , 可以看到里面有个type属性设置为foreground就可以提取空背景的人像图片 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
人像分割的接口流程基本就已经清楚了 , 可以进行代码实现了 。
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
桌面太单调?一起用Python做个自定义动画挂件,好玩又有趣!
文章图片
这样我们就可以根据图片 , 进行人像分割 , 提取出空背景的人像图 。 效果如下: