MENU

Bing 随机壁纸 API

Bing 随机壁纸
(此图是随机出来的,不信你刷新一下? =v= )
PS:随机壁纸服务器已到期,没钱续费,穷......
现将壁纸图库迁移到了NAS上,所以每天0:30~7:30时间段,API会无法访问,给您带来的不便,敬请谅解

  很多人都知道,Bing 搜索的主页每天都会推送一张漂亮的壁纸,比如今天的壁纸是这样的

Bing 每日壁纸

每一天都不相同,风格迥异,非常养眼,用来做桌面壁纸/网站背景,都是非常合适的。

  前段时间脑子里突然冒出个想法,能不能让网站随机呈现Bing 壁纸呢,这样就不会局限于一天一张图片了,我想看的时候只要刷新网页就可以了。emmmmmm,答案是肯定的!

  首先,随机的前提是要有一个壁纸库,这个好办,服务器上去年到现在爬取到的Bing 壁纸至少应该有几百张了;

  然后,构造一个随机函数去指定文件夹内读取图片就完事儿了,这里我们用世界上最好的语言PHP(逃...

<?php
    require("config.inc.php");
    function randomSelectIndex() {
        $imgs = glob(IMG_DIR . IMG_EXTENSIONS, GLOB_BRACE);
        $selectedIndex = array_rand($imgs);
        setcookie("currentIndex", $selectedIndex);
        return $selectedIndex;
    }
    function getImgFromIndex($index) {
        $imgs = glob(IMG_DIR . IMG_EXTENSIONS, GLOB_BRACE);
        if(IMG_NO_REPEAT_CURRENT && isset($_COOKIE['currentIndex'])):
            while ($index == $_COOKIE['currentIndex']):
                $index = randomSelectIndex();
            endwhile;
        endif;

        $randomImage = $imgs[$index];
        return $randomImage;
    }
    $currentSelectedIndex = randomSelectIndex();
    $randomImage = getImgFromIndex($currentSelectedIndex);

    header('Content-Type:image/jpeg');
    header('Content-Length: ' . filesize($randomImage));
    readfile($randomImage);

?>

关于config.inc.php

<?php
    //图片文件夹相对路径
    define("IMG_DIR",'imgs/');
    //支援的图片文件类型
    define("IMG_EXTENSIONS",'*.{jpg,jpeg,png}');
    //下次不要和和此次随机选择到的图片重复
    define("IMG_NO_REPEAT_CURRENT",true);
?>

最后,在需要使用随机图片的地方,访问这个函数就行。

本站随机壁纸API:
https://img.codess.cc/index.php

此处内容需要评论回复后(审核通过)方可阅读。

顺便推一波我的免费图床:https://pic.codess.cc

  目前我的服务器收集了好几百张,都是1920*1080高清壁纸,具体多少懒得数,反正每天都在增加,喜欢的同学可以拿去用,API完全公开,没设防盗链,适度使用,可别把服务器给拖宕机了23333333

0:00