自建随机图片API

自建随机图片API1.前言网上其实可以搜到很多关于随机图片的Api,但是很多已经年代久远、速度缓慢,或者是分类不全不太符合口味,所以选择自建一个,图片都是自己挑选的,不喜欢也可以更换,方便维护。本次使用的是GitHub+jsdelivr来构建,同样也使用于使用OSS云存储的用户。有能网络条件的可以直接使用Gi

大家好,欢迎来到IT知识分享网。

1.前言

网上其实可以搜到很多关于随机图片的Api,但是很多已经年代久远、速度缓慢,或者是分类不全不太符合口味,所以选择自建一个,图片都是自己挑选的,不喜欢也可以更换,方便维护。

本次使用的是GitHub+jsdelivr 来构建,同样也使用于使用OSS云存储的用户。

有能网络条件的可以直接使用Github完成搭建,完全免费。

由于jsdeliver已经被半墙,国内基本不能正常使用,建议自己找新的CDN,我已经改回阿里云OSS+阿里云CDN,在这不作使用解释。

2.实现步骤

①建立图片API,首先就得有图片,数量风格都可以自选,在这里推荐几个免费的图库——wallhaven.cc 、Pixbay 、Pexels 

②把图片保持到本地后,文件名大多都是乱的,最好统一一下名称,排个序号,方便日后删除更换,在这里建议把图片格式转为webp形式,可以有效提升加载时间。这边不建议使用太大的图片,因为在读取的时候会加载图片,一般图片10M左右已经要加载很久,所以我们需要压缩图片。可以选择TinyPNG实现,非会员支持最大5M和20张的图片处理,可以有效压缩图片大小且不会产出肉眼可见的影响。

③接着可以把图片上传到云存储或者网站空间,比如Github、Gitee和各大云厂商。

(我原本是使用阿里云的OSS,但是奈何问题太多,现在已经转为Github+jsdelivr)

通过Github直接访问图片国内可能不太理想,这时可以使用jsdeliver进行 CDN 加速,他是免费开源的。

 

阿里云OSSGithub

 

jsdeliver使用方法(已弃用)
使用非常简单,只需要把图片地址链接域名改为 CDN 的域名。格式如下:

https://cdn.jsdelivr.net/gh/<你的github用户名>/<你的图床仓库名>@<仓库版本号>/图片的路径

 

以 1.webp 图片为例

最终地址为(地址仅做为范例参考):

https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/1.webp

④以此类推,获取剩下图片的URl,然后保存到TXT文本里:

https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/1.webp
https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/2.webp
https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/3.webp
https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/4.webp
https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/5.webp
https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/6.webp

如果是使用某些云存储平台的直接使用图片的URL就可以了。

 

⑤把TXT文件放在云存储或者网站任意目录下,注意要跟下文中的PHP文件要放在同一级目录,比如同时放在……/Random/Photo/img.txt和……/Random/Photo/img.php

如果嫌麻烦,也可以用python自动输出解决:

# 作者(Author):TonaSmith
# 链接(URL):https://caoyongzhuo.cn/archives/466
#适用于序号编排的图片如1.png、2.png……

filename="D:\\文档\\imgs.txt"    /*输出目录及文件名*/
randimgs=open(filename,"a")
for numbers in range(1,20):       /*输出序号,这里是从1输出到20*/
    randimgs.write("https://cdn.jsdelivr.net/gh/dogsking/randompicturePC/images/"+str(numbers)+".webp\n")   /*修改此处的图片地址*/
randimgs.close()

⑤最后使用随机获取图片链接输出的PHP:

<?php
//此php和保存链接的txt文件放在同一目录下
$filename = "img.txt";  /*保存链接的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"));
}
?>

⑥在需要使用php文件的地方填入文件路径就可以访问这个随机图片php,即可调取图片输出。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/32342.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

关注微信