今天我们继续用Python写一个小工具,一方面实现壁纸自由,另一方面实现桌面更换自由!
壁纸 API
我们这里使用一个开源在 GitHub 上的必应壁纸 API 作为壁纸的来源
❝
https://github.com/zenghongtu/bing-wallpaper
从 readme 当中我们可以知道,在 web 应用中我只需要使用如下引用即可
<img src="https://bingw.jasonzeng.dev/?w=800"/>
实在是太方便了
接口使用
下面我们来看下该 API 的具体调用规则
- 1、传入 resolution 参数可以指定壁纸图像的分辨率。默认为1920x1080,可选值如下:
UHD
1920x1200
1920x1080
1366x768
1280x768
1024x768
800x600
800x480
768x1280
720x1280
640x480
480x800
400x240
320x240
240x320
UHD 就是高清,图片比较大。
- 2、传入 index 可以获取某一天的图片,0 表示今天,1 表示昨天,以此类推,index=random 表示随机一天。
- 3、传入 date 可以获取从某一天到今天的图片,比如 data=20210401。
- 4、传入 w 和 h 可以指定图片的宽度和高度。
- 5、传入 qlt 可以指定图片的质量,取值范围是 0 到 100。
举个例子
我们直接在浏览器输入如下地址
http://bingw.jasonzeng.dev?resolution=UHD&index=random&w=1000&format=json
Output:
{
"startdate": "20220105",
"copyright": "Plate-billed mountain toucan in Bellavista Cloud Forest Reserve, Ecuador (© Tui De Roy/Minden Pictures)",
"urlbase": "/th?id=OHR.MountainToucan_EN-US7120632569",
"title": "A plate-billed mountain toucan",
"url": "https://www.bing.com/th?id=OHR.MountainToucan_EN-US7120632569_UHD.jpg&w=1000"
}
可以说是相当方便了
也可以直接在 css 当中使用
background-image: url(https://bingw.jasonzeng.dev/?index=random);
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
Python 调用
下面我们看一下如何通过 Python 进行调用,也很简单
import requests
def get_wallpaper():
for i in range(30):
url = "https://bingw.jasonzeng.dev?resolution=UHD&index=%s" % str(i)
print(url)
res = requests.get(url)
with open("wallpaper/" + "%s.jpg" % str(i),"wb") as w:
w.write(res.content)
if __name__ == "__main__":
get_wallpaper()
上面代码就是获取前30张壁纸,我们可以修改range
的参数,来获取不同数量的壁纸
抓取效果如下
更换桌面
壁纸有了,下面我们就来进行自动切换桌面壁纸,这里使用win32con
和win32gui
操作桌面壁纸
def windows_img(paper_path):
k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control panel\\Desktop", 0, win32con.KEY_SET_VALUE) # 在注册表中写入属性值
win32api.RegSetValueEx(k, "wapaperStyle", 0, win32con.REG_SZ,"2") # 0 代表桌面居中 2 代表拉伸桌面
win32api.RegSetValueEx(k, "Tilewallpaper", 0, win32con.REG_SZ,"0")
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, paper_path, win32con.SPIF_SENDWININICHANGE) # 刷新桌面
然后就是从已经下载的壁纸当中选择图片
def change_wallpaper():
pic_list = os.listdir("wallpaper") # 得到文件路径下的图片,列表类型
i=0
print(pic_list)
while True:
pic = "wallpaper"+'\{}'.format(pic_list[i])
abspath_pic = os.path.abspath(pic)
windows_img(abspath_pic)
print(abspath_pic)
time.sleep(1000) # 设置壁纸更换间隔
i += 1
if i==len(pic_list): # 如果是最后一张图片,则重新到第一张
i=0
if __name__ == '__main__':
change_wallpaper()
这样一个简单的自动切换桌面壁纸的工具就完成了,快来尝试一下吧!
好了,今天的分享就到这里,喜欢就点个赞吧~
关于Python学习指南
学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!
包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!
👉Python所有方向的学习路线👈
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)
👉Python学习视频600合集👈
观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。
温馨提示:篇幅有限,已打包文件夹,获取方式在:文末
👉Python70个实战练手案例&源码👈
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
👉Python大厂面试资料👈
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
👉Python副业兼职路线&方法👈
学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。
👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取【保证100%免费
】
