文章参考,代码引用

ref1: 流弊了!竟然用Python做一个炫酷的小姐姐动态壁纸_cainiao_python的博客-CSDN博客 https://blog.csdn.net/cainiao_python/article/details/106561410?ivk_sa=1024320u
ref2: (5 条消息) Python怎样实现Wallpaper Engine? - 知乎 https://www.zhihu.com/question/381460573

原文章,作者 构思精巧,实现也诱人, 遂逐之

代码

import pyglet
from PIL import ImageSequence,Image
import win32gui, win32ui, win32conclass AnimationSrn:def __init__(self):parenthwnd = self.getScreenHandle()print(parenthwnd )left, top, right, bottom = win32gui.GetWindowRect(parenthwnd)self.size = (right - left, bottom -top)self.gifpath = self.resizeGif()def frameIterator(self, frames):for frame in frames:framecopy = frame.copy()# print (type (framecopy))framecopy = framecopy.resize(self.size, Image.ANTIALIAS)yield framecopy# 返回一^迭代器,迭代gi仲的每一帧图像def resizeGif(self, originpath="gif2.gif"):img = Image.open(originpath)#获取gif的每帧图像的顺序迭代器# Get sequence iteratorframes = ImageSequence.Iterator(img)#print(dir(self))frames = self.frameIterator(frames) #对每一帧图像调整其分辨率print(type(frames))outimg = next(frames) # Handle first frame separatelyoutimg.info = img.info # H制顺序信息savepath = originpath.replace('.','_resize.')outimg.save(savepath, save_all=True, append_images=list(frames))return savepathdef getScreenHandle(self):hwnd = win32gui.FindWindow("Progman", "Program Manager")win32gui.SendMessageTimeout(hwnd, 0x052C, 0, None, 0, 0x03E8)hwnd_WorkW = Nonewhile 1:hwnd_WorkW = win32gui.FindWindowEx(None, hwnd_WorkW, "WorkerW", None)if not hwnd_WorkW:continuehView = win32gui.FindWindowEx(hwnd_WorkW, None, "SHELLDLL_DefView", None)if not hView:continueh = win32gui.FindWindowEx(None, hwnd_WorkW, "WorkerW", None)while h:win32gui.SendMessage(h, 0x0010, 0, 0); # WM_CLOSEh = win32gui.FindWindowEx(None, hwnd_WorkW, "WorkerW", None)breakreturn hwnd'''return win32gui.GetDesktopWindow()'''def putGifScreen(self):parenthwnd = self.getScreenHandle()#使用pyglet加载动画# print ("1ll", parenthwnd)animation = pyglet.image.load_animation(self.gifpath) #使用pyglet 加载一个gif 动图sprite = pyglet.sprite.Sprite(animation) # 创建一个动画#创建一个新的窗口#创建-个窗口, 并将其设置为图像大小newwin = pyglet.window.Window(width=sprite.width,height=sprite.height,style=pyglet.window.Window.WINDOW_STYLE_BORDERLESS)#将默认的背景图的父窗口改为新创建的窗口# print(win._hwnd)win32gui.SetParent(newwin._hwnd, parenthwnd)@newwin.event #事件处理程序的函数装饰器.用來显示图像def on_draw():                         newwin.clear()sprite.draw()                                  pyglet.app.run()    if __name__ == '__main__':AnimationSrn().putGifScreen()

python 动态壁纸相关推荐

  1. python实现动态壁纸_流弊了!竟然用Python做一个炫酷的小姐姐动态壁纸

    原标题:流弊了!竟然用Python做一个炫酷的小姐姐动态壁纸 公众号关注 " 菜鸟学Python" 设为 "星标",每天带你玩转Python! (女神IU,图片 ...

  2. Python 实现macOS Catalina 动态壁纸定时设置

    前言 很不幸,我的电脑只能装 macOS High Sierra ,但是看他们的 Catalina 和 Mojave 的壁纸好炫酷,据说还可以根据日出时间切换壁纸和暗黑模式?!尽管条件限制,我还是想体 ...

  3. python写一个地球同步卫星图动态壁纸(第三部分)

    -------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...

  4. python写一个地球同步卫星图动态壁纸(第二部分)

    -------------------------------- 前序: 系统:Windows 10 IDE:PyCharm Python:3.7.4 python写一个地球同步卫星图动态壁纸(第一部 ...

  5. 用python写一个动态壁纸工具

    screenpv.py: use pyqt5 + opencv to open a video or camera 首先用pyqt5+opencv写一个全屏播放视频的工具 import sys imp ...

  6. python实现动态壁纸_python学习笔记 | macOS Big Sur动态壁纸食用指南

    目录 前言 北京时间23日凌晨1点,苹果WWDC2020大会开幕.在发布会上,苹果正式发布了新版macOS,并将其命名为"Big Sur". 相比于外界争议最大的UI界面,令我更为 ...

  7. 龙芯平台python答案_在龙芯平台上自己编写原创应用——“动态壁纸”

    原标题:在龙芯平台上自己编写原创应用--"动态壁纸" 一.为何要在龙芯平台上编写"动态壁纸"? 龙芯3A3000桌面电脑的用户越来越多了,人们都想在龙芯电脑上有 ...

  8. python 爬动态壁纸

    这里爬的是网站对外的一个推广接口,里面的图片均可以访问到 import requests as req from bs4 import BeautifulSoup import re import o ...

  9. Python爬虫【批量】抓取某动态壁纸网站的视频

    1.使用说明: 1.爬取的网站:某动态壁纸网站(网址见文章底部) 2.爬取的内容:视频 3.使用方法:新建spider.py文件,将下面代码拷贝到spider.py里,用pycharm打开spider ...

最新文章

  1. ubuntu 默认鼠标双击问题
  2. 《Android深度探索(卷1):HAL与驱动开发》——1.6节 Linux设备驱动
  3. jQuery-1.9.1源码分析系列(六) 延时对象应用——jQuery.ready
  4. 微型计算机不属于串行接口,在微型计算机中,不属于串行接口的是
  5. SAP 电商云 Spartacus UI 客户端模式下产品主数据的 HTTP 请求设计
  6. bzoj3589 动态树 求链并 容斥
  7. (十六)java中的String
  8. Day 6 函数与模块
  9. OpenCV滤波器 龙门石窟篇【Python-Open_CV系列(九)】(均值滤波器、中值滤波器、高斯滤波器、双边滤波器)
  10. 中学生怎样学计算机编程6,中学生学电脑编程有什么好处
  11. android开发中常用的Eclipse快捷键详细整理
  12. win7 局域网访问网站
  13. 模仿人类逻辑,首个BERT模型AI通过初二科学考试!研究人员:完成了老板遗愿...
  14. 大三上学期实训——基于SpringBoot的电影后台管理系统
  15. 做个全栈工程师真的好吗?
  16. 【历史上的今天】2 月 18 日:电池的发明者出生;全美最大的电脑连锁店开业;Netsky 蠕虫问世
  17. 如何关闭计算机的f12功能键,win10如何关闭快捷键?win10关闭F1~F12快捷键的方法
  18. 实训五:交换机配置文件备份
  19. VMWare 14虚拟机下载和安装说明兼容WIN10
  20. 苹果6s强制删除id锁_苹果手机忘了解锁密码不要慌,你可以这样做!

热门文章

  1. java遍历几种,【Java】集合遍历的概念及遍历的几种方式
  2. 十四、关于利用卡诺图快速解决时序电路自启动问题的研究
  3. python学习笔记一——鸭子模型
  4. Objective-c中Category的用法
  5. 引起网络广播风暴的原因
  6. 亚马逊echo中国使用_您可以(也可以不)使用多个Amazon Echo做的事情
  7. 运行uniapp项目,提示uniapp依赖插件还未加载,请稍后重试
  8. 关于蓝牙的知识,蓝牙5.0和蓝牙5.2
  9. 各行业商业数据分析报告网站汇总
  10. 把Fusioncharts封装成Ext组件的思路 及实现