教你写一个自己的随机图 API
前言
刚刚开始使用 halo 博客的时候,我就发现 halo 博客系统是可以使用随机图当背景的,所以也是使用了网上一些比较火的随机图 API。
在上次发现了各种图片 API 接口之后,我发现这些接口都是使用随机图的原理的,然后大部分的随机图都是二次元浓度过高,自己是有点受不了的,所以准备自己写一个随机图的 API 接口。正好最近的 vps 备案成功了,就写一个 API 网页吧。
1、寻找图片
这一步肯定是不用多说的,自己就是因为嫌弃以前使用的 api 二次元浓度太高了,所以想自己找一些好看的图片来当随机图。那么从哪里找图片呢?我这里有几个推荐的好看的壁纸网站,都是免费下载的
当然,还有很多的地方可以找到好看的图片,就比如我最近刷短视频的时候,就会经常给我推荐好看的壁纸
2、压缩图片
我们都知道,如果一张图片的大小太大,那么网页打开时加载时间就会比较长,这个样子就会有网页打开了,但是图片未加载完全的情况出现。
那么如何避免这种情况的出现呢,我们可以使用一些图片压缩工具,这里推荐使用在线的图片压缩网站 TinyPNG
这个网站的压缩率非常的高,使用的图片压缩算法基本上可以达到 70% 左右的压缩了,这已经是高得离谱了。
3、上传图片
在压缩图片完成之后,就到了我们的上传图片的时间了
然后我上传图片使用的是 github+jsdelivr 图床来上传的。
那么这边使用的图床插件是 PicGo,配置好之后的样子长这样
那么上传图片的问题解决了
4、创建 API
api 怎么创建呢?
首先第一步,我们打开 vps 的宝塔面板,如果没安装的推荐安装一个,因为这个对建站小白来说非常的方便。
我们参加一个 API 站点
然后申请一个 ssl 认证,再打开强制 https
然后打开这个站点的目录,创建一个 img.txt 和一个 random.php
我们在 img.txt 中将我们上传的图片的 url 写在里面,效果如图所示
这里提一点,如何一件复制你上传图片的 url 呢,如果你使用的是 PicGo 上传的话,可以在 “相册” 一栏里,选择你想要的图片,然后一件复制 url
然后我们在 random.php 中写下这段代码
<?php
//存有image链接的文件名img.txt
$filename = "img.txt";
if(!file_exists($filename)){
die('文件不存在');
}
//从文本获取链接
$pics = [];
$fs = fopen($filename, "r");
while(!feof($fs)){
$line=trim(fgets($fs));
if($line!=''){
array_push($pics, $line);
}
}
//从数组随机获取链接
$pic = $pics[array_rand($pics)];
//返回指定格式
$type=$_GET['type'];
switch($type){
//JSON返回
case 'json':
header('Content-type:text/json');
die(json_encode(['pic'=>$pic]));
default:
die(header("Location: $pic"));
}
?>
到此大功告成!我们的随机图 API 就做好了!
我们只需要访问这个 API 链接(random.php)就可以立即跳转到我们 img.txt 中的随机一张图片的地址啦!
后话
那么到此自己的随机图 API 就做好啦
这里也是附上自己的随机图 API 接口
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
相关文章