吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 5758|回复: 26
收起左侧

[Python 原创] 美化桌面 --4K必应壁纸下载及图片合成

[复制链接]
psqladm 发表于 2025-2-7 09:05
本帖最后由 psqladm 于 2025-2-20 21:49 编辑

Humming along_4k.jpg

下载4K必应壁纸,美化桌面,系统里可以设置定时更换。如有雷同,请飘过。修改增加多张图片合成。
[Python] 纯文本查看 复制代码
# !/usr/bin/env python
# coding=utf-8

from __future__ import (absolute_import, division, print_function, unicode_literals)

import requests
import os


def download_all_bing_4k_wallpapers(save_directory):
    # 创建保存目录(如果不存在)
    if not os.path.exists(save_directory):
        os.makedirs(save_directory)

    for i in range(100): # 一次下多少张,看个人需求,自个填数      
        # 发送HTTP GET请求获取必应壁纸信息
        url = "https://bingw.jasonzeng.dev?resolution=UHD&index=%s" % str(i) + "&format=json"
        response = requests.get(url).json()
        image_name = response['title'].replace('?', '') + '_4k.jpg'
        # 如已有,跳过
        if os.path.exists(os.path.join(save_directory, image_name)):
            print(i, image_name, " Already Exist")
            continue
        # 下载, 保存,格式为jpg
        url = "https://bingw.jasonzeng.dev?resolution=UHD&index=%s" % str(i)
        response = requests.get(url)
        if response.status_code == 200:
            with open(os.path.join(save_directory, image_name), 'wb') as f:
                f.write(response.content)
            print(i, image_name, f'4K壁纸已下载至 {os.path.join(save_directory, image_name)}')
        else:
            continue

    return


if __name__ == '__main__':

    # 调用函数下载4K壁纸(指定保存目录)
    download_all_bing_4k_wallpapers('D:\\必应壁纸\\')

免费评分

参与人数 3吾爱币 +9 热心值 +3 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
zhou068 + 1 + 1 我很赞同!
wjbg2022 + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| psqladm 发表于 2025-2-20 15:40
# !/usr/bin/env python
# coding=utf-8

from __future__ import (absolute_import, division, print_function, unicode_literals)

from PIL import Image

# 4张4K图片合成2x2网格并保持最终输出为3840x2160分辨率
def composite_4k_grid(input_files, output_path):
    if len(input_files) != 4:
        raise ValueError("需要精确4张输入图片")
    # 打开所有图片并验证尺寸
    images = [Image.open(f) for f in input_files]
    for idx, img in enumerate(images):
        if img.size != (3840, 2160):
            raise ValueError(f"第{idx + 1}张图片尺寸不符要求,应为3840x2160")
    # 创建新画布
    canvas = Image.new('RGB', (3840, 2160))
    # 定义网格参数
    grid_params = [
        {"position": (0, 0), "size": (1920, 1080)},
        {"position": (1920, 0), "size": (1920, 1080)},
        {"position": (0, 1080), "size": (1920, 1080)},
        {"position": (1920, 1080), "size": (1920, 1080)}
    ]
    for img, param in zip(images, grid_params):
        # 高质量缩小图片(使用LANCZOS算法)
        resized = img.resize(param["size"], Image.Resampling.LANCZOS)
        canvas.paste(resized, param["position"])
    canvas.save(output_path, quality=95, subsampling=0)

    return


if __name__ == '__main__':
    input_files = ['D:\\必应壁纸\\有羽毛的时尚达人.jpg',  # 左上
                   'D:\\必应壁纸\\红绿金刚鹦鹉之家.jpg',  # 右上
                   'D:\\必应壁纸\\物以类聚,人以群分.jpg',  # 左下
                   'D:\\必应壁纸\\物以类聚.jpg'  # 右下
                   ]
    output_path = 'D:\\必应壁纸\\combined_4k.jpg'  # 输出文件

    composite_4k_grid(input_files, output_path)
xueyinglantian 发表于 2025-2-7 10:43
maoxian008 发表于 2025-2-7 11:04
meigui6431 发表于 2025-2-7 11:13
感谢分享。如果有教程就更好了
 楼主| psqladm 发表于 2025-2-7 11:26
不提供编译版本啦,简单的小程序,并且各人存储文件夹也不一样,自个修改就好。
carpenter0851 发表于 2025-2-7 11:59
zhu8487 发表于 2025-2-7 11:32
感谢楼主分享试用

收藏了,谢谢分享。
超逸绝尘 发表于 2025-2-7 13:03
看不明白,但是挺厉害
SGJM1994 发表于 2025-2-7 13:45
收藏了,谢谢分享。
hncs2008 发表于 2025-2-7 16:23
这个可以有 赞一个
MAXINGXING 发表于 2025-2-7 16:24
厉害,说真的bing的壁纸确实好看
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - 52pojie.cn ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2026-6-10 08:54

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表