前言 : 今天想改一下博客背景图片,改成随机的,然后这里就教一下大家搭建随机图片api吧。

很简单的,几行代码就搞定了

{tabs}
{tabs-pane label="第一种办法"}
你需要创建两个文件,第一个文件 img.txt ,第二个文件 api.php ,当然也不一定这样命名,你自己想怎么命名就怎么命名吧!

{lamp/}

第一步,创建一个api.php的文件,将以下代码粘贴进去

<?php
$arr = file('img.txt');
$n = count($arr) - 1;
for ($i = 1; $i <= 1; $i++) {
    $x = rand(0, $n);
    header("Location:" . $arr[$x], "\n");
}

2,随后再创建一个img.txt的文件,把你的每一张图片链接粘贴进去,一行一个链接,如图 :
1
{/tabs-pane}
{tabs-pane label="第二种方法"}
1,新建api.php,当然也可以是其他的
2,新建图片文件夹,如images,放入随机图片。无需改名
3,其中 代码第10行images/改为你的图片目录文件夹,12行也是

 <?php
header('Cache-Control:no-cache,must-revalidate');
header('Pragma:no-cache');
header("Expires:0");
header("Access-Control-Allow-Origin:*");
//处理请求输出数据
//这将得到一个文件夹中的所有gif,jpg和png图片的数组
$rand=rand(0,1);
if($rand){
 $localurl="images/*.{gif,jpg,png}";
}else{
 $localurl="images/*.{gif,jpg,png}";
}
$img_array=glob($localurl,GLOB_BRACE);
//从数组中选择一个随机图片 
$img=array_rand($img_array);
$imgurl=$img_array[$img];
$https=isset($_GET["https"])?$_GET["https"]:1;
if($https == "true"){
 $imgurl='https://'.$_SERVER['SERVER_NAME'].'/'.$imgurl;
}else{
 $imgurl='http://'.$_SERVER['SERVER_NAME'].'/'.$imgurl;
}
if(isset($_GET["type"])?$_GET["type"]:1=="json"){
 $rTotal='0';
 $gTotal='0';
 $bTotal='0';
 $total='0';
 $imageInfo = getimagesize($img_array[$img]);
 //图片类型
 $imgType = strtolower(substr(image_type_to_extension($imageInfo[2]), 1));
 //对应函数
 $imageFun = 'imagecreatefrom' . ($imgType == 'jpg' ? 'jpeg' : $imgType);
 $i = $imageFun($img_array[$img]);
 //测试图片,自己定义一个,注意路径
 for($x=0;
 $x<imagesx($i);
 $x++){
     for($y=0;
     $y<imagesy($i);
     $y++){
         $rgb=imagecolorat($i,$x,$y);
         $r=($rgb>>16)&0xFF;
         $g=($rgb>>8)&0xFF;
         $b=$rgb&0xFF;
         $rTotal+=$r;
         $gTotal+=$g;
         $bTotal+=$b;
         $total++;
     }
 }
 $rAverage=round($rTotal/$total);
 $gAverage=round($gTotal/$total);
 $bAverage=round($bTotal/$total);
 $arr=array('ImgUrl'=>$imgurl,'Color'=>"$rAverage,$gAverage,$bAverage");
 echo json_encode($arr);
 exit();
}
//在页面显示图片地址
//echo $imgurl;
header("location:$imgurl");

{/tabs-pane}
{/tabs}