必应手机壁纸常见的尺寸有哪些?
2025-03-29 04:23:09 40 分享链接 开发笔记 python
必应手机壁纸的尺寸选择可以通过调整 API 接口参数或 URL 后缀来实现。除了常见的 1080x1920 和 2160x3840,以下是其他可通过技术手段获取的尺寸类型及适用场景:
一、必应 API 直接支持的尺寸
必应的官方 API 提供了 resolution
参数,可直接指定以下几种固定分辨率(以横向像素数表示):
1366
- 对应分辨率:1366x768(16:9)
- 适用设备:早期宽屏笔记本、部分中低端安卓手机(如三星 Galaxy On5)。
使用方法:在 API URL 中添加
&resolution=1366
,例如:url = f"https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN&resolution=1366"
3840
- 对应分辨率:3840x2160(4K,16:9)
- 适用设备:高端安卓旗舰(如索尼 Xperia 1 V)、折叠屏手机(如三星 Galaxy Z Fold5)。
- 使用方法:在 API URL 中添加
&resolution=3840
。
UHD
- 等同于 3840x2160,是 4K 分辨率的别名。
- 使用方法:在 API URL 中添加
&resolution=UHD
。
二、通过 URL 后缀自定义的尺寸
必应壁纸的原始 URL 包含 urlbase
字段,可通过拼接 _宽度x高度.jpg
来获取非标尺寸。以下是常见手机屏幕的适配方案:
1. 主流全面屏尺寸
尺寸 | 比例 | 适用设备(示例) |
---|---|---|
1080x2340 | 19.5:9 | iPhone 13 Mini、华为 P50 |
1080x2400 | 9:20 | Google Pixel 7、Pixel 8 |
1440x3040 | 19:9 | 三星 Galaxy S23 Ultra |
1644x3840 | 9:21 | 索尼 Xperia 1 V、Xperia PRO-I |
示例代码:
# 拼接 1080x2340 尺寸
wallpaper_url = f"https://www.bing.com{data['images'][0]['urlbase']}_1080x2340.jpg"
2. 特殊比例尺寸
- 21:9 超宽屏:如 2560x1080(适用于 LG G8X ThinQ)。
- 正方形:如 1080x1080(适用于 iPhone SE 第三代的主屏幕图标背景)。
- 折叠屏展开状态:如 2208x2480(三星 Galaxy Z Fold5 展开后)。
三、实际验证有效的尺寸
通过测试必应 API 返回的 URL,以下尺寸在多数情况下可正常下载:
- 720x1280(720p,适用于红米 Note 10)
- 1080x1920(1080p,iPhone 12/13 系列)
- 1440x2560(2K,三星 Galaxy S20)
- 2160x4680(4K 超高清,适用于索尼 Xperia 1 IV)
注意:部分尺寸可能因图片版权或原始素材限制无法获取,此时会返回 404 错误。
四、动态调整尺寸的方法
若需适配任意手机分辨率,可使用以下两种方式:
根据设备屏幕自动匹配:
import requests from PIL import Image from io import BytesIO # 获取原始图片(无尺寸后缀) raw_url = f"https://www.bing.com{data['images'][0]['urlbase']}.jpg" response = requests.get(raw_url) img = Image.open(BytesIO(response.content)) # 调整尺寸为设备分辨率(例如 1080x2340) img = img.resize((1080, 2340), Image.Resampling.LANCZOS) img.save("custom_size.jpg")
通过 API 参数强制缩放:
在 URL 中添加&w=宽度&h=高度
(必应会自动保持比例):# 强制缩放为 1000x1000(实际尺寸可能为 1000x562) wallpaper_url = f"https://www.bing.com{data['images'][0]['urlbase']}_1920x1080.jpg?w=1000&h=1000"
五、兼容性与注意事项
尺寸优先级:
- 必应优先提供与原图比例最接近的尺寸,例如原图为 16:9 时,指定 1080x2340 可能返回拉伸后的图片。
- 建议通过
urlbase
拼接尺寸后缀,而非依赖 API 的resolution
参数。
市场区域影响:
- 不同地区(如
mkt=zh-CN
与mkt=en-US
)返回的壁纸尺寸可能略有差异。 - 部分尺寸仅在特定市场可用(如日本市场的 1920x1080 可能更常见)。
- 不同地区(如
版权与使用限制:
- 必应壁纸的版权归原作者所有,商业使用需获得授权。
- 禁止修改图片内容或移除水印(如有)。
六、常见问题解决方案
问题描述 | 解决方案 |
---|---|
下载的图片尺寸不符 | 检查 URL 后缀是否正确,或尝试使用 urlbase 拼接不同尺寸。 |
404 错误(尺寸不存在) | 更换为其他尺寸(如 1920x1080),或尝试使用原图缩放。 |
图片拉伸/变形 | 确保指定的尺寸与原图比例一致(可通过 data['images'][0]['enddate'] 获取原图尺寸)。 |
通过以上方法,您可以灵活获取适合不同手机型号的必应壁纸。若需更精准的尺寸适配,建议结合设备的实际分辨率进行调整。
七、常用国家的市场区域代码
国家/地区 | 市场区域代码 | 说明 |
---|---|---|
中国 | zh-CN | 适用于中国大陆地区,以中文显示信息,壁纸可能包含中国的自然景观、文化遗产等元素。 |
美国 | en-US | 以英语显示信息,壁纸可能包含美国的标志性建筑、自然风景等内容。 |
英国 | en-GB | 英语(英国)市场,壁纸可能具有英国特色,如伦敦地标、乡村风光等。 |
日本 | ja-JP | 以日语显示信息,壁纸可能会有日本的樱花、富士山、京都古寺等特色元素。 |
法国 | fr-FR | 法语市场,壁纸可能会展现法国的埃菲尔铁塔、普罗旺斯薰衣草田等。 |
德国 | de-DE | 德语市场,壁纸可能包含德国的城堡、啤酒节等元素。 |
澳大利亚 | en-AU | 英语(澳大利亚)市场,壁纸可能会有澳大利亚的悉尼歌剧院、大堡礁等标志性景观。 |
加拿大(英语) | en-CA | 以英语显示信息,壁纸可能包含加拿大的尼亚加拉瀑布、落基山脉等。 |
加拿大(法语) | fr-CA | 以法语显示信息,在魁北克等地区可能更常用。 |
八、完整代码示例(下载 8 张指定尺寸壁纸)
import requests
import os
def get_bing_wallpapers_by_date(start_date_index, count=1, size="1080x1920"):
"""
根据起始日期索引和数量获取必应壁纸的 URL
:param start_date_index: 起始日期索引,0 表示今天,1 表示昨天,依此类推
:param count: 要获取的壁纸数量
:param size: 壁纸尺寸
:return: 壁纸 URL 列表
"""
url = f"https://www.bing.com/HPImageArchive.aspx?format=js&idx={start_date_index}&n={count}&mkt=zh-CN"
try:
response = requests.get(url)
response.raise_for_status()
data = response.json()
return [
f"https://www.bing.com{image['urlbase']}_{size}.jpg"
for image in data['images']
]
except requests.RequestException as e:
print(f"请求出错: {e}")
except (KeyError, IndexError, ValueError):
print("解析响应数据出错")
return []
def download_wallpaper(url, save_path):
"""
下载壁纸
:param url: 壁纸 URL
:param save_path: 保存路径
"""
if url:
try:
response = requests.get(url)
response.raise_for_status()
with open(save_path, 'wb') as file:
file.write(response.content)
print(f"壁纸已成功下载到 {save_path}")
except requests.RequestException as e:
print(f"下载出错: {e}")
except OSError as e:
print(f"保存文件出错: {e}")
if __name__ == "__main__":
# 要获取的起始日期索引,例如 0 表示今天,1 表示昨天
start_date_index = 1
# 要下载的壁纸数量
download_count = 3
# 壁纸尺寸
wallpaper_size = "1080x1920"
# 保存壁纸的目录
save_dir = "bing_wallpapers"
if not os.path.exists(save_dir):
os.makedirs(save_dir)
wallpaper_urls = get_bing_wallpapers_by_date(start_date_index, download_count, wallpaper_size)
for i, url in enumerate(wallpaper_urls):
save_path = os.path.join(save_dir, f"wallpaper_{start_date_index + i}.jpg")
download_wallpaper(url, save_path)
最近更新
- 2025-04-03 16:57
- JavaScript 的 MutationObserver API基础解释
- 2025-03-31 17:51
- 4:3 与 9:16 比例的壁纸,常见的分辨率有以下几种:
- 2025-03-29 04:44
- BeautifulSoup 对象的一些常见方法
- 2025-03-29 04:02
- 除了BingWallpaper,还有哪些库可以获取必应历史壁纸?
- 2025-03-29 03:17
- 必应手机壁纸常见的尺寸有哪些?
- 2025-03-29 00:54
- 分享一些Python 常见的正则表达式示例
- 2025-03-23 17:31
- 如何将我用python写的小说格式化工具打包成exe文件?
- 2025-03-23 17:24
- 我用python写的一个小说格式化工具(去除中英文标点符号)
- 2025-03-23 17:21
- 我的第一个python小程序(替换文本中的标点符号为换行符)
- 2025-03-18 00:31
- 豆包版做小说推文将小说内容改写成第一人称视角