当前位置:首页 > 网站源码 > 正文内容

PHP搭建随机图片API的简易教程

6031个月前 (10-31)网站源码34

随机图片api顾名思义,就是通过访问一个链接实现每一次访问获得随机的一张图片,如常见的就有随机必应图片,随机动漫图片等等,但是当我们想要把随机图片API作为博客文章头图或者网站背景时,有时候会发现一些公开API的图片大小并不符合,而且小概率会出现比较难看的图片,质量不能保证,所以学会自己搭建随机图API是很有必要的。

第一种-外链版

<?php
$txt = "储存图片链接的txt外链"; //读取远程txt;
//是否存在
if(file_get_contents($txt)){
$data = file($txt); //将文件存放在一个数组中;
$num = count($data); //条数;
$id = mt_rand(0,$num-1); //随机数字;
$url = chop($data[$id]); //显示第几行数据,并去除空格;
header("location:$url");
}
?>

第二种-本地版

这一种API所获得的随机图片全部存放在服务器目录下,随机图片响应速度与服务器性能有直接关系。

新建index.php文件,将下方代码复制进去,创建一个images文件夹,将图片放入即可.

<?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'].'/api/'.$imgurl;
}else{
    $imgurl='http://'.$_SERVER['SERVER_NAME'].'/api/'.$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");
?>


扫描二维码推送至手机访问。

版权声明:本文由603度发布,如需转载请注明出处。

                  图文来自网络,如有侵权联系作者。

本文链接:https://999603.xyz/post/14.html

标签: 源码apiphp
返回列表

没有更早的文章了...

下一篇:域名隐形跳转新网站代码演示

相关文章

域名隐形跳转新网站代码演示

轻松一步 实现域名跳转代码,把本站的地址换成你要跳转的地址就...

弹窗广告—高曝光但需克制的类型

弹窗广告—高曝光但需克制的类型

弹窗广告适合强推广场景(如限时活动),但需注意用户体验。以下...

简单温暖的冬日弹窗源码支持电脑手机

简单温暖的冬日弹窗源码支持电脑手机

简单温暖的冬日弹窗源码测试图冬日弹窗自适应双端密码:9mes...

域名防红跳转系统源码

域名防红跳转系统源码

本源码是防止系统检测的,目的是防红,需要你的域名是还没有红的...

qq浏览器还有这个功能

qq浏览器还有这个功能

网址打不开。可以使用qq浏览器排查一下原因。挺实用的。可以查...

宝塔Linux面板报错:ModuleNotFoundError: No module named OpenSSL

宝塔Linux面板报错:ModuleNotFoundError: No module named OpenSSL

宝塔Linux面板报错:ModuleNotFoundErro...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。
QQ&滴滴
QQ:99960312
在线时间
9:00 ~ 23:00