使用指南
- 使用 python3 环境运行上面代码,且要求安装有 requests 和 PIL 等库。
- 看到提示语句之后,输入 0 或 1 ,并回车,即可自动生成并设置壁纸。
- 在主函数
time.sleep(100)
处设置睡眠值,可以修改更换壁纸的频率。
源码
#cmd /k python "$(FULL_CURRENT_PATH)" & PAUSE & EXIT
import os
import tempfile
import time
import requests
import win32api
import win32con
import win32gui
from PIL import Image, ImageDraw, ImageFont
import random
def setWallPaper(pic):
key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control Panel\\Desktop", 0, win32con.KEY_SET_VALUE)
win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2")# 2拉伸适应桌面,0桌面居中
win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, pic, 1 + 2)
print('成功应用桌面壁纸')
def love():
url = r'https://api.vvhan.com/api/love'
res = requests.get(url).text
content = "『{}』".format(res)
return content
def love2():
url = r'https://api.lovelive.tools/api/SweetNothings/WebSite'
res = requests.get(url).text
content = "『{}』".format(res)
return content
def hitokoto():
url = 'https://v1.hitokoto.cn/'
res = requests.get(url).json()
hitokoto = res['hitokoto'].strip('。')
from_where = res['from']
from_who = res['from_who']
content = "『{}』".format(hitokoto)
return content
def word():
global word_type
if word_type == '0':
return hitokoto()
elif word_type == '1':
return random.choice([love(), love2()])
def jpg(path):
if not os.path.exists(path):
url = 'https://cn-south-227-storage-hitokoto-19627663.oss.dogecdn.com/pic/qf3cu.jpg'
content = requests.get(url).content
with open(path, 'wb+') as f:
f.write(content)
# 语录类型
word_type = 0
# 临时目录
root_path = tempfile.gettempdir()
print(root_path)
# 背景图片路径
bgfile = os.path.join(root_path, "bg.png")
# 最终的壁纸图片路径
wallfile = os.path.join(root_path, "wall.png")
def main():
# 下载背景图
jpg(bgfile)
# 打开背景图
img = Image.open(bgfile)
# 创建空白图
d = ImageDraw.Draw(img)
# 设置字体
font = ImageFont.truetype("simhei.ttf", 60, encoding="utf-8")
width, height = img.size
length = 99
one_word = ""
# 确保语录不超过壁纸宽度
while (length > width//60):
# 获取语录
one_word = word()
length = len(one_word)
time.sleep(1)
print(one_word)
# 语录添加到图片
d.text((width / 2 - 30 * (len(one_word)), height / 2 - 240), one_word, font=font, fill=(80, 80, 80, 128))
# 报错图片
img.save(wallfile)
# 关闭流
img.close()
# 设置壁纸
setWallPaper(wallfile)
# 删除壁纸图片
# os.unlink(wallfile)
# 删除背景图片
# os.unlink(bgfile)
if __name__ == '__main__':
word_type = input('>> 类型(0:一言; 1:情话):').strip()
while True:
main()
time.sleep(100)
此处评论已关闭