壁紙のソースとして GitHub 上のオープン ソース Bing Wallpaper API を使用します
https://github.com/ zenghongtu/bing-wallpaper
Readme から、Web アプリケーションでは次の参照のみを使用する必要があることがわかります
<img src="https://img.php.cn/"/ alt="Python を使用して壁紙をダウンロードし、デスクトップを自動的に変更する" >
とても便利です
API の具体的な呼び出しルールを見てみましょう
1. 受信解決パラメーターは、次の内容を指定します。壁紙画像の解像度。デフォルトは 1920x1080 で、オプションの値は次のとおりです。
UHD 1920x1200 1920x1080 1366x768 1280x768 1024x768 800x600 800x480 768x1280 720x1280 640x480 480x800 400x240 320x240 240x320
UHD は高解像度を意味し、画像はより大きくなります。
2. 特定の日の写真を取得するにはインデックスを渡します。0 は今日を意味し、1 は昨日を意味します。index=random はランダムな日を意味します。
3. 特定の日から今日までの写真を取得するには、data=20210401 などの日付を渡します。
4. w と h を渡して画像の幅と高さを指定します。
5. qlt を渡して画像の品質を指定します (値の範囲は 0 ~ 100)。
例
次のアドレスをブラウザに直接入力します
http://bingw.jasonzeng.dev?resolutinotallow=UHD&index=random&w=1000&format=json
出力:
{ "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 を介して呼び出す方法を見てみましょう。これも非常に簡単です
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 枚の写真を取得するものです。壁紙の場合、範囲パラメーターを変更して、さまざまな数の壁紙を取得できます。
キャプチャ効果は次のとおりです。
壁紙 それでは、デスクトップの壁紙を自動的に切り替えてみましょう。ここでは 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")# 得到文件路径下的Python を使用して壁紙をダウンロードし、デスクトップを自動的に変更する,列表类型 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):# 如果是最后一张Python を使用して壁紙をダウンロードし、デスクトップを自動的に変更する,则重新到第一张 i=0 if __name__ == '__main__': change_wallpaper()
こんなに簡単な自動デスクトップ壁紙切り替えツールが完成しました、ぜひお試しください!
以上がPython を使用して壁紙をダウンロードし、デスクトップを自動的に変更するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。