两种PHP代码实现随机图片展示效果

两种PHP代码实现随机图片展示效果

今天来分享一篇PHP实现随机图片展示效果的代码,其实我们需要实现这个效果很简单,下面有例子展示,有的人可能还没理解,我也不知道怎么完美的表达,大致意思就是,把直接以图片地址的格式改为以php后缀的样子,比如一个网站的背景,通常我们都是直接以https://域名/1366.png格式来定义背景,如果想让它实现随机展示就换成了https://域名/1366.php来展示,就可以实现随机图片了,下面来看具体做法。

两种PHP代码实现随机图片展示效果插图

类似例子如下:

https://api.dujin.org/bing/1366.php

https://api.dujin.org/bing/1920.php

1.新建一个php文件名字随便比如:1366.php

2.把下面代码复制到这个php文件里(代码一和二都可以,images/改为自己的图片目录即可)

代码一:

<?php
$img_array = glob('/images/*.{gif,jpg,png,jpeg,webp,bmp}', GLOB_BRACE);
if(count($img_array) == 0) die('没找到图片文件。请先上传一些图片到 '.dirname(__FILE__).'/images/ 文件夹');
header('Content-Type: image/png');
echo(file_get_contents($img_array[array_rand($img_array)]));
?>

代码二:

<?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");

3.新建images文件夹,并上传一些图片到里面,然后访问这个php文件地址,就可以实现随机图片展示效果了。

 

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享