首頁 >後端開發 >Python教學 >用Python下載桌布並自動更換桌面

用Python下載桌布並自動更換桌面

WBOY
WBOY轉載
2023-04-10 15:01:031109瀏覽


壁紙API

我們這裡使用一個開源在GitHub 上的必應壁紙API 作為壁紙的來源

https://github. com/zenghongtu/bing-wallpaper

用Python下載桌布並自動更換桌面

#從readme 當中我們可以知道,在web 應用中我只需要使用以下引用即可

<img  src="https://img.php.cn/"/ alt="用Python下載桌布並自動更換桌面" >

實在是太方便了

介面使用

#下面我們來看下該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?resolutinotallow=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?resolutinotallow=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的參數,來取得不同數量的壁紙

#抓取效果如下:

用Python下載桌布並自動更換桌面

更換桌面

壁紙有了,下面我們就來進行自動切換桌面壁紙,這裡使用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) # 刷新桌面

然後就是從已經下載的壁紙當中選擇圖片

r​​rreee

這樣一個簡單的自動切換桌面桌布的工具就完成了,快來試試看吧!

#

以上是用Python下載桌布並自動更換桌面的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:51cto.com。如有侵權,請聯絡admin@php.cn刪除