搭建了一个获取必应每日壁纸的Demo(附源码)

Bing 首页每天会更新一张来自世界各地的精美图片,通过提供的 API 可以简单、快速地获取每日壁纸图片。可以实现每日自动更新,作为网站背景和电脑壁纸都非常不错。

我写了一个小 Demo:bz.w3h5.com 可以实现不同分辨率/尺寸的图片,支持随机获取 16 天内的 Bing 每日壁纸图片。

该项目开源,感兴趣的可以访问 Github 查看,基于 Next.js,支持 vercel 一键部署。

Demo 支持的参数:

https://bz.w3h5.com/img/uhd 链接直接输出 UHD超清图片。

https://bz.w3h5.com/img/fhd 链接直接输出 1920×1080 分辨率图片。

https://bz.w3h5.com/img/hd 链接直接输出 1366×768 分辨率图片。

https://bz.w3h5.com/img/m 链接直接输出 1080×1920 分辨率竖版图片。

https://bz.w3h5.com/img/rand 链接随机输出 UHD超清图片。

https://bz.w3h5.com/img/rand_fhd 链接随机输出 1920×1080 分辨率图片。

https://bz.w3h5.com/img/rand_hd 链接随机输出 1366×768 分辨率图片。

https://bz.w3h5.com/img/rand_m 链接随机输出 1080×1920 分辨率竖版图片。


直接访问上面的地址就可以获取到对应的图片,可以直接复制或者右键另存,作为桌面壁纸使用。


项目中提取了一个方法,可以获取多张图片,指定几天前的图片等,我能考虑到的场景都处理了,简单贴一下代码:

/**
 * @description: 获取必应每日壁纸
 * @return {*}
 */
export async function getBingImages({
  ind = 0,
  num = 1,
  type = "UHD",
}: {
  ind?: number;
  num?: number;
  type: string;
}) {
  /**
   * 参数说明:
   * idx?: 请求图片截止天数: 0 今天; -1 截止至明天(预准备的); 1 截止至昨天,类推(目前最多获取到16天前的图片)
   * n: 1-8 返回请求数量,目前最多一次获取8张
   * mkt?: 地区 zh-CN(中国)
   */
  const response = await axios.get(
    `https://cn.bing.com/HPImageArchive.aspx?format=js&idx=${ind}&n=${num}&mkt=zh-CN`
  );
  return `https://cn.bing.com${response.data.images[0].urlbase}_${type}.jpg`;
}

注释写得很详细了,可以结合项目代码查看。

未经允许不得转载:前端资源网 - w3h5 » 搭建了一个获取必应每日壁纸的Demo(附源码)

赞 (1)
分享到: +

评论 沙发

Avatar

换个身份

  • 昵称 (必填)
  • 邮箱 (选填)