搭建随机图片API

2024-08-20 16:19:42 浏览数 (2)

想法

搭建好BLOG和TECH,我一直觉得里面的随机图片很好看。依靠baidu我大概了解到这个是依靠API实现的。于是乎,我自己也想整一个(毕竟图片在自己手上用的放心捏)。再也不怕别人的API接口失效力!

建设

方法如下:

本地搭建

初步建设

将图片放于本地服务器中(与网站同目录下) 当然你想当外链使用也可以

首先在网站根目录下创建一个文件夹 photos 和一个名为 api.php 的文件。

然后在photos的文件夹内放图片,在api.php内编写如下代码:

代码语言:javascript复制
<?php
$img_array = glob("photos/*.{gif,jpg,png}",GLOB_BRACE); 
$img = array_rand($img_array); 
$dz = $img_array[$img];
header("Location:".$dz);
?> 

保存即可,通过api即可随机调用img文件夹中的图片。

使用方法

访问地址:http://你的域名/api.php就可以啦!可以选择套CDN加速!

不足

不过这种方法不足的就是会对服务器造成较大的压力,毕竟是本地文件,加载还是要消耗一定资源的。

所以:

外链图片

初步建设

将图片放于其他服务器中,或者是图床中 当然你想当本地使用也可以

也是在网站的根目录下面先创建 photos.txt 和 api.php 文件(这个网站可以不用index首页,反正就是放个图片对吧?)

当然,如果你想创建默认页面,放入index网页即可!

然后在photos.txt文档内放图片外链地址(一行一个),在api.php加入下列代码:

代码语言:javascript复制
<?php
$arr=file('photos.txt');
$n=count($arr)-1;
for ($i=1;$i<=1;$i  ){
$x=rand(0,$n);header("Location:".$arr[$x],"n");}
?> 

使用方法

最后访问地址:http://你的域名/api.php即可!

这种方法的好处是可与将图片存放到外面以降低服务器压力(还可以白嫖一些图床)。不过对图片存放源的带宽有一定的要求(你也不想图片加载半天加载不出来吧~)


Python

一些补充的东西(本地提取图片命名)

(其实就是我自己比较懒)

我的图片放在网站根目录下的photos文件夹中,所以采用如下方式。如果你的图片放在对象存储中,则直接在TXT文件中写入每张图片的位置(一行一个)即可!

由于我自己的图片比较多,所以当我使用搭建外链的时候比较头疼——那么多图片的文件名得全部录入TXT中!

于是我就稍微写了两行python简化了一下工作量,代码如下(自己用的时候修改一下地址就行啦):

代码语言:javascript复制
import os
path = "E:WEB学习pythonphotos"  #填写photos文件夹的路径
filename = 'name.txt' #你想保存的TXT文件的名字,如果没有的话会自己创建一个(默认和python执行文件同目录)
datanames = os.listdir(path)  #读取photos中的文件
for i in datanames:
    with open(filename, 'a') as f:  #'w'表示写数据,写之前会清空文件中的原有数据!'a'的话是往后接着写数据!
        f.write('photos/' i)  #是否带有文件夹名看自己的需求
        f.write('n')

读完以后就会产生像下面的一个TXT文件:

然后就好了……

0 人点赞