使用指南

  1. 使用 python3 环境运行上面代码,且要求安装有 requests 和 PIL 等库。
  2. 看到提示语句之后,输入 0 或 1 ,并回车,即可自动生成并设置壁纸。
  3. 在主函数 time.sleep(100) 处设置睡眠值,可以修改更换壁纸的频率。

wall.png

源码

#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)
最后修改:2021 年 01 月 27 日 01 : 01 PM
如果觉得我的文章对你有用,请随意赞赏